Merci Myke,
voici donc les exemples de code associés.
Au chargement de la page, je créé des boutons radios dynamiquement (_Criteres est une List)
foreach (ConfCritere critere in ConfRecherche.GetConfig().Criteres)
_Criteres.Add(new Criteres(critere.Id, critere.SQLPath, critere.Label));
foreach (Criteres c in _Criteres)
{
RadioButton rb = new RadioButton();
rb.ID = c.Id;
rb.Text = c.Label;
rb.GroupName = this._groupeRadios;
rb.CssClass = this._CSSRadios;
this.criteresRecherche.Controls.Add(rb);
}
La validation de mon formulaire se faire via un ImageButton. Lors du clic sur celui-ci, j'appelle la fonction
demarrerRecherche_Click(object sender, ImageClickEventArgs e)
Dans celle-ci, je récupère le nom du bouton radio coché :
foreach (Object obj in this.criteresRecherche.Controls)
{
// Traitement que sur les objets radio
if (obj.GetType() == rb.GetType())
{
rb = (RadioButton)obj;
// Bouton radio coche
if (rb.Checked)
{
// Recuperation du nom de la table SQL de recherche
cheminSQL = this.RecupererTableCritere(rb.ID);
break;
}
}
}
Cela fonctionne bien quand on clic sur le bouton de validation du formulaire.
Maintenance, je voudrais aussi effectuer la même chose (validation du formulaire) lors de l'appui sur la touche Entrée. J'ai lu que l'appui sur la touche entrée provoquait un Postback.
J'ai donc écrit le code suivant dans Page_Load
if (IsPostBack)
this.demarrerRecherche_Click(this.demarrerRecherche, null);
Mais là, je n'arrive pluis à récupérer le bouton radio coché, à cause surement du null en rouge et du coup je suis un peu coincé.
Warwick - Slappeur Pompier