11
votes

ASP.NET C # Quel bouton radio dans un nom de groupe donné est sélectionné?

J'ai 30 radiobuttons individuels. Je ne peux pas utiliser de radiobuttoniste. Il y a 3 groupes de boutons. Chaque groupe a un nom de groupe unique. Tout fonctionne correctement dans le navigateur Web. Comment puis-je dire sur un post récupéré quel bouton est sélectionné dans chacun des noms de groupes donnés?

EDIT: STROND> La fonction I utilisée P>

private string getRadioValue(ControlCollection clts, string groupName)
{
    string ret = "";
    foreach (Control ctl in clts)
    {
        if (ctl.Controls.Count != 0)
        {
            if (ret == "")
                ret = getRadioValue(ctl.Controls, groupName);
        }

        if (ctl.ToString() == "System.Web.UI.WebControls.RadioButton")
        {
            RadioButton rb = (RadioButton)ctl;
            if (rb.GroupName == groupName && rb.Checked == true)
                ret = rb.Attributes["Value"];
        }
    }
    return ret;
}


0 commentaires

3 Réponses :


9
votes

Vous devez vérifier toutes les propriétés vérifiées de Radiobuttons.
Il n'y a pas de moyen simple de le vérifier par groupeName. (Vous pouvez écrire une méthode qui scannage de tous les radiobuttons dans certains récipients de contrôle et la liste de retenue des paires nom de groupe, le contrôle vérifié, mais il est plus facile de numériser tout RB)


0 commentaires

0
votes

Vous pouvez utiliser Demande.Form ("GROUPNAME")


4 commentaires

Cela ne fonctionnera pas comme ASP.NET ajoute CRUD à l'attribut Nom. Par exemple: ctl00 $ cphbody $ mthree Le nom de groupe est mthre, si je devais utiliser demande.Form, je devrais connaître la partie CRUD comme juste que le nom de groupe n'est pas accessible.


Eh bien, si vous avez des pages configurées d'une manière qui nécessite un mangling, vous pouvez généralement savoir ce que la partie CRUD utilise la propriété cliente de l'un de vos commandes.


La partie crud est-elle la même pour l'identifiant et le nom? Je ne vois pas de paramètre de nom de client.


C'est la même chose, sinon il y a des différences mineures - comme on utilise $ où l'autre utilise _ ou:, donc une chaîne remplacer peut généralement faire le tour.



1
votes

Attachez le même gestionnaire à chaque radiodiobutton. Ensuite, vérifiez les propriétés que vous recherchez. Définissez Activer le post-plan de la réalité.

protected void RadioButton1_30_CheckedChanged(object sender, EventArgs e)
{
    RadioButton rb = (RadioButton)sender;        
    string txtVal = rb.Text;
    string groupName= rb.GroupName;
    int tmpInt;
    Int32.TryParse(txtVal, out tmpInt);

}


1 commentaires

Cela nécessiterait une actualisation de la page chaque fois que l'utilisateur modifie la radio.