2010-10-07 7 views
2

J'ai une liste déroulante qui est dans updatepanel. Je dois remplir cette liste déroulante sur un événement client via JavaScript qui appelle __dopostback de l'updatepanel et appelle son événement load.DropdownList reset ne fonctionne pas dans Updatepanel sur le bouton Submit

Le problème est que lorsque je soumets l'événement updatepanel_Load du formulaire, il s'exécute à nouveau et réinitialise à nouveau le DropDownLIst qui provoque la perte de selectedValue dans Dropdown.

<asp:UpdatePanel ID="UpdatePanel3" runat="server" OnLoad="UpdatePanel3_Load" UpdateMode="Conditional"> 

    <ContentTemplate> 


     <asp:DropDownList ID="ddlItems" runat="server" CssClass="dropdown">     
     </asp:DropDownList>     

    </ContentTemplate> 
</asp:UpdatePanel> 

Sur chargement de la page cette liste déroulante est vide .... pas de fonction pour le remplir.

Maintenant, le problème est quand je remplis la liste déroulante par le chargement de UPatepanel, cet événement UPdatepanel Load aussi exécuter quand je soumets ma page. En fait, la solution de JavaScript est due à une table et à la sélection de l'élément de la ligne de la table Remplit le DropDownList de __dopostback de mon updatepanel. J'ai un bouton qui ouvre une fenêtre pop-up et cette fenêtre popup contient une table, quand le client sélectionne un élément de cette table et ferme cette fenêtre puis je remplis mon menu déroulant (dans la page parent ou ouvreur via Ajax, LoadPanel Load) comme option de sélection supplémentaire. La liste déroulante dépend donc de l'entrée de cette table.

+0

"Maintenant, le problème est quand jamais je" ...? Votre solution semble fou - pourquoi remplir le DDL du côté client, qui appelle juste le serveur? C'est normal dans un sens AJAX quand vous voulez récupérer des données basées sur une "sélection d'utilisateur", mais le faire lorsque la page est rendue n'a aucun sens. Remplissez le DDL sur le chargement de la page. – RPM1984

+0

@ RPM1984; vous n'avez pas compris sa question, je vous suggère de relire. –

+0

@Muhammad Akhtar - vous avez raison, je n'ai pas compris (fournissant ainsi une alternative). Il serait utile s'il a déclaré "pourquoi" il appelle le serveur de javascript sur le rendu. J'ai encore lu le Q, et je ne comprends toujours pas. Donné par le manque de réponses, personne ne le fait. Si vous le faites, pourquoi ne répondez-vous pas? – RPM1984

Répondre

1

Je dois gérer avec javascript. J'ai donc sauvegardé la valeur sélectionnée dans DropDownList onchange event dans le champ Caché et sauvegardé à partir de ce champ masqué car la liste déroulante des événements de sauvegarde est réinitialisée et perd l'élément sélectionné. Parce que j'ai observé que lorsque j'ai cliqué sur le bouton de sauvegarde, les événements de rappel qui ont également appelé avant un événement de clic sur le bouton. Alors comme mon cas, il réinitialise la liste déroulante.

2

Qu'en est-il du chargement de votre page? Si vous chargez votre ddl dans votre chargement de page, vous chargez les éléments à chaque clic. Utilisation;

If Not Page.IsPostBack then 
+0

non .... ce n'est pas sur le chargement de page .... seulement sur le chargement de l'updatepanel. – Azhar

Questions connexes