Mise à jour d'un contrôle en dehors du UpdatePanel
J'ai donc un UserControl
avec certains en cascade DropDownList
s sur elle. La sélection de la liste 1 permet de la liste 2, qui permet à son tour la liste 3. Une fois que vous avez fait une sélection dans les trois listes, vous pouvez passer à la page suivante.
La DropDownList
s sont tous à l'intérieur d'un UpdatePanel
. Mais le bouton "Page Suivante" est à l'extérieur de la UpdatePanel
. Ce bouton doit être désactivé jusqu'à ce que tous les trois listes ont une sélection, et ensuite, il devrait être à nouveau activée. Mais depuis que le bouton est à l'extérieur de la UpdatePanel
il ne met pas à jour quand je fais des sélections. (Modifier: Le bouton "Page Suivante" est une page qui contient également le UserControl
.)
Je sais un moyen de résoudre ce:
var scriptManager = ScriptManager.GetCurrent(this.Page);
scriptManager.RegisterPostBackControl(dropDownList1);
scriptManager.RegisterPostBackControl(dropDownList2);
scriptManager.RegisterPostBackControl(dropDownList3);
Cela garantit une publication lorsque aucune liste est modifiée, de sorte que le bouton de mise à jour. Mais si je fais ça, je risque de les simplifier en se débarrassant de la UpdatePanel
en premier lieu.
Est-il une autre façon, à travers quelques petits malins JavaScript ou quelque chose, que je puisse mettre à jour un contrôle à l'extérieur d'un UpdatePanel
sans avoir à renoncer à Ajax?
source d'informationauteur Ryan Lundy
Vous devez vous connecter pour publier un commentaire.
Pourriez-vous pas ajouter un panneau de mise à jour autour de la "page suivante", puis ajouter un déclencheur pour la dropdownlist updatepanel pour le déclenchement de la page suivante panneau de mise à jour?
Juste jeter des idées, sans avoir réellement essayé 🙂
Place un UpdatePanel autour du bouton suivant et créer un déclencheur pour chacune des listes déroulantes afin qu'il déclenche une async publication. Ex:
vous pouvez upddate un contrôle à l'extérieur du panneau de mise à jour en le plaçant dans update_panel2 et dire
update_panel2.update()
.Note le
UpdateMode
de l'UpdatePanel doit être mis àconditional
pour que cela fonctionne.Ce serait l'idéal, être fait en javascript, avec une validation côté serveur, vérifiez dans le gestionnaire d'événements click.
Un rapide jQuery exemple: