2010-05-03 6 views
3

Salut J'ai un ensemble de boutons radio pour "oui" et "non" valeurs qui ont un nom = "choix". "oui" est coché par défaut. Ils sont tous deux runat = "serveur". J'ai lu le choix sur la publication comme ci-dessous. Cela fonctionne parfaitement bien tant que la validation n'échoue pas. Par exemple, si je sélectionne "non" et que la validation échoue lors de la publication, je vois toujours "non" sélectionné. Mais si je soumets le formulaire après avoir tout corrigé, la valeur lue est "oui" côté serveur! Est-ce un bug dans .net, et si oui, comment puis-je résoudre ce problème?bouton radio perd de la valeur sur la publication

foreach (string key in Request.Form.AllKeys) 
{ 
    if (key.EndsWith("choice")) 
     return Request.Form[key] == "yes"; 
} 
+0

Est-ce que la page ASPX ont « EnableViewState » activé? J'ai rencontré un problème similaire une fois, avec un contrôle montrant une chose sur le formulaire mais les données soumises étaient complètement différentes. Il a été résolu lorsque j'ai défini EnableViewState sur true. –

+0

oui l'état d'affichage est activé. C'est ainsi que le formulaire conserve la valeur sélectionnée avant la publication. Donc, si j'ai choisi "non" avant la publication, la page re-rendue montre toujours "non" sélectionné. Cependant, si je soumets après cela, la valeur qui est relue est "oui" – Riz

+0

Compris. Dans mon cas, j'avais ViewState activé sur mon contrôle, mais pas la page, donc il garderait une trace des mises à jour sur la publication, mais la page elle-même ne s'en souciait pas, donc les résultats deviendraient assez inhabituels. Désolé je ne peux pas aider plus loin. –

Répondre

0

cela a été un problème avec moi désactivant viewstate à un niveau plus profond.

0

Si vous Databinding RadioButton ou l'un de ses contrôles ancêtres, assurez-vous de vérifier pour postbacks lors du réglage de la valeur initiale:

if (!IsPostBack) 
    YourControlId.DataBind(); 
Questions connexes