2010-12-06 16 views
10

J'ai 30 RadioButtons individuels. Je ne peux pas utiliser un RadioButtonList. 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 savoir sur un post quel bouton est sélectionné dans chacun des GroupsNames?ASP.Net C# Quel bouton radio d'un GroupName donné est sélectionné?

EDIT: la fonction i utilisé

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; 
} 

Répondre

8

Vous devez vérifier tous les radiobuttons vérifier la propriété.
Il n'y a aucun moyen simple de le vérifier par groupName. (Vous pouvez écrire méthode qui analyse tous les boutons radio dans un certain conteneur de contrôle et liste retour des paires groupName, le contrôle vérifié, mais plus facile consiste à analyser tous rb)

+1

Décevant, merci. – Justin808

0

Vous pouvez utiliser Request.Form (« groupName »)

+1

Cela ne fonctionnera pas car ASP.NET ajoute crud à l'attribut name. Par exemple: ctl00 $ cphBody $ Mthree Le GroupName est Mthree, si je devais utiliser Request.Form, je devrais connaître la partie crud car seulement le GroupName n'est pas accessible. – Justin808

+0

Eh bien, si vous avez configuré vos pages d'une manière qui nécessite un mangling, vous pouvez généralement découvrir ce que la partie crud utilise la propriété ClientID de l'un de vos contrôles. – joelt

+0

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

1

Attachez le même gestionnaire à chaque RadioButton. Ensuite, vérifiez les propriétés que vous recherchez. Définissez Activer la publication sur true.

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); 

} 
+4

Cela nécessiterait une actualisation de page chaque fois que l'utilisateur change de radio. – Justin808