2010-12-10 48 views
0

J'ai une page avecdonnées ne lie pas ButtonClick ou selectionChange

Page 
--UpdatePanel 
    -- Buttons 
    -- radiobutton 

--Uc1 
--Uc2 

Sur la page charge i lie contrôle utilisateur UC1, UC2 avec la valeur sélectionnée de RadioButton. Mais quand je sélectionne une nouvelle valeur dans le radiobutton, il déclenche l'événement selectionchanged, exécute la méthode bind mais ne met pas à jour les valeurs uc1, uc2. De même j'essaie d'obtenir le bouton commandargument quand on clique sur le bouton et de mettre à jour usercontrols mais ce n'est pas le cas.

Ce qui pourrait leur causer de ne pas mettre à jour, même si la méthode de liaison est exécutée?

Répondre

0

Feux d'événement Page_Load avant l'événement. SelectionChanged Vous effectuez votre liaison trop tôt. Il vaudrait mieux déplacer votre code de liaison dans une fonction séparée, et appeler ce code aux moments où vous voulez effectuer la liaison.

+0

C'est ce que je fais en appelant la méthode de liaison (fonction séparée) lorsque la page est chargée ou lorsqu'un événement est déclenché mais n'actualise pas les contrôles utilisateur –

0

UC1 et UC2 ne sont pas dans le UpdatePanel, ils ne mettre à jour, sauf si une publication complète est effectuée. Vous devez les placer dans le UpdatePanel si vous voulez les mettre à jour en fonction des postbacks partiels initiés dans le UpdatePanel.

Il peut être contre-intuitif lors du débogage, parce postback partielle provoque toujours le cycle de vie de la page à exécuter. Mais rien en dehors du UpdatePanel en cours de rafraîchissement ne sera rendu. C'est juste la façon dont ils travaillent.

+0

Si je les déplace dans un panneau de mise à jour, il ne se met pas à jour fonctionne correctement. Quand je clique à nouveau, il montre les anciennes données de sélection mais pas actuelles. –

+0

C'est difficile à dire sans voir le code. Le bouton radio est-il un déclencheur pour le UpdatePanel? Êtes-vous une liaison de données après cet événement? Si vos contrôles utilisateur ont du code dans Page_Load qui affecte leur contenu, celui-ci aura déjà été exécuté avant le code d'événement dans la page principale. –