Postback et perte d'information

Résolu
cs_Warwick Messages postés 81 Date d'inscription vendredi 1 février 2002 Statut Membre Dernière intervention 8 octobre 2007 - 2 oct. 2007 à 23:54
cs_Warwick Messages postés 81 Date d'inscription vendredi 1 février 2002 Statut Membre Dernière intervention 8 octobre 2007 - 8 oct. 2007 à 08:57
Bonsoir, voici un petit problème surement simple auquel je suis confronté.

Je dispose d'une page ou des boutons radios sont créés dynamiquement au sein d'un formulaire. La validation du formulaire se fait par l'évènement OnClick d'une ImageButton.
Tout fonctionne très bien. Quand je clique dessus, le résultat fourni est celui attendu.
Cependant en appuyant sur la touche entrée, je voudrais aussi provoquer la validation du formulaire. J'ai lu qu'un appui sur la touche entrée provoquait un postback. Dans mon code, je teste donc si je suis en postback et lance mes traitements.
Cependant dans le premier cas, je pouvais récupérer le nom du bouton radio activé. Lors du postback avec la touche entrée, je n'arrive pas à récupérer cette infomation. En fait, lors du postback je force l'appel à la fonction OnClick de l'imageButton, mais avec des EventArgs à null, d'ou la perte d'info je pense. Savez-vous s'il y a un moyen simple de récupérer cet info lors de l'appui sur la touche entrée ?

Par avance merci.

Warwick - Slappeur Pompier

3 réponses

cs_Warwick Messages postés 81 Date d'inscription vendredi 1 février 2002 Statut Membre Dernière intervention 8 octobre 2007
8 oct. 2007 à 08:57
Bon en fait c'est tout bête...
En regardant les liens en rapport avec mon sujet (merci pour cette fonctionnalité), je suis tombé sur un message de Cyril.
La solution, ajouter cela dans mon formulaire : defaultbutton="buttonxxx"

Warwick - Slappeur Pompier
3
cs_Myke Messages postés 138 Date d'inscription mercredi 5 février 2003 Statut Membre Dernière intervention 2 février 2010
5 oct. 2007 à 15:32
C'est pas clair si tu pouvais fournir l'exemple du code behind ! Je pourrais peut-etre d'aider

Myke
0
cs_Warwick Messages postés 81 Date d'inscription vendredi 1 février 2002 Statut Membre Dernière intervention 8 octobre 2007
8 oct. 2007 à 08:45
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
0
Rejoignez-nous