J'ai un contrôle personnalisé qui possède un contrôle RadioButtonList. Lorsque vous sélectionnez l'un des boutons radio, le contrôle effectue une publication pour effectuer un travail sur le serveur et la page est rechargée avec le bon bouton radio sélectionné. Cela fonctionne très bien dans ma page de test.asp.net 2.0 problème d'état d'affichage du contrôle personnalisé
J'ai maintenant déplacé le contrôle dans une page sur le site où il va vivre et quand le radiobutton est sélectionné, la publication se produit mais quand la page recharge le radiobutton n'est plus sélectionné. Il semble donc que la sélection n'est plus sauvegardée dans viewstate.
Tout pointeur sur les aspects de la nouvelle page que je devrais regarder serait très apprécié.
Vive
Adendum - un peu plus d'infos
Merci pour les conseils Stephen
Le contrôle a été développé à l'origine en tant que contrôle utilisateur Web en utilisant le concepteur, la mise en œuvre très simple, les gestionnaires de côté serveur pour charge et quand la sélection du radiobutton change. Séparez DLL pour le code derrière et un ascx. Je l'ai ensuite converti en un contrôle personnalisé pour tirer le ascx dans la DLL avec le code compilé derrière.
Je ne crée pas dynamiquement le contrôle dans la page de test, il y a un tag et un <% @ Register ... blah blah> en haut dans l'aspx pour le faire. Le radiobuttonlist a été glissé et déposé dans l'ascx en utilisant le concepteur, donc je n'ai pas implémenté le code pour le créer. Donc, tout est très vanille. Je cherche vraiment les différences que je devrais regarder dans les pages qui utilisent le contrôle, pour comprendre pourquoi cela fonctionne dans la page de test, mais pas dans la page du site où il doit résider.
* ********** Ajout *********** J'ai eu peu de temps pour résoudre ce problème et j'ai dû le remettre à un autre développeur. Quand je découvre de lui quelle est la solution, je la posterai ici. Un grand merci à tous pour leur contribution.
*********** Réponse ************* Voici la réponse du développeur qui a pris le relais.
Votre contrôle de quiz était très bien, la raison pour laquelle les valeurs n'étaient pas conservées en postback était due à la fonctionnalité héritée de la classe de base lorsque vous l'avez mise en ligne. Essentiellement, il a fait un DataBind dans la méthode de chargement de la page qui dans le cycle de vie de la page est avant que les méthodes de publication soient appelées, donc il réinitialise les valeurs des listes déroulantes. À la fin, j'ai mis en place des propriétés viewstate qui contenaient les valeurs des listes déroulantes. Donc, ce n'était pas quelque chose que vous auriez pu savoir.
La page utilise-t-elle AJAX? – SLaks
Non, c'est une page asp.net simple. – Rich
@SLaks, si la page utilise Ajax, que dois-je rechercher? Je sais que j'ai dit que ce n'était pas le cas, mais je suis curieux car je vais avoir à faire face à ajax à nouveau tôt ou tard. – Rich