2009-06-10 7 views
0

Imaginez un formulaire de saisie de données ASP.NET avec un champ de saisie "client". L'ensemble de données des numéros de clients possibles dans les millions. Ce que je voudrais faire est de mettre un contrôle: LinkButton étiqueté "Look-up Client" sur le formulaire qui lancerait un formulaire AJAX modal permettant à l'utilisateur de chercher par champs tels que le prénom, l'adresse, le téléphone, etc, et afficher une grille de clients correspondant aux paramètres de recherche, à partir de laquelle l'utilisateur sélectionne un client et le formulaire modal disparaît et le LinkButton lit alors quelque chose comme "John Smith (cliquez pour plus d'infos)" et le clientID est stocké à un non champ de forme visible. Mon plan était d'utiliser un ASP: UpdatePanel lié à un contrôle ModalPopupExtender mais le problème que je rencontre est que chaque fois qu'un contrôle ASP: Button est cliqué sur le formulaire ModalPopupExtender (1) il ne semble pas réellement exécutez le code code-behind (les points d'arrêt ne sont pas touchés), et (2) la fenêtre modale disparaît même si le bouton cliqué n'est pas OkControlID ou CancelControlID. Avec tout cela comme arrière-plan, ma question est la suivante: Comment puis-je réaliser ce que j'ai décrit ici? Suis-je sur la bonne voie, ou est-ce que j'essaie de faire quelque chose qui dépasse la portée du contrôle ModalPopupExtender? (Et si ce dernier est le cas, quelle est la droite façon de le faire?)Comment faire des allers-retours de serveur à l'intérieur d'un ASP.NET AJAX ModalPopupExtender?

Répondre

0

Mettez un panneau avec un UpdatePanel à l'intérieur. À l'intérieur du panneau de mise à jour, vous aurez votre grille de recherche/recherche/bouton de recherche, etc. pour la recherche. Maintenant, en dehors du panneau, placez le lien "lookup client" et le ModalPopupExtender (reliant le premier Panel, pas le panneau de mise à jour).

Enfin, vous devrez renvoyer cette information à votre formulaire principal. Soit javascript, fullbacks sur toute la page ou un autre panneau de mise à jour autour du contrôle que vous ajoutez le client à travailler, cela dépend de ce que vous avez.

Personnellement, cependant, je préfère implémenter la recherche/table en javascript et avoir juste un webservice simple qui recherche les utilisateurs et retourne JSON. D'après mon expérience, UpdatePanels sont extrêmement lourds et finissent par causer beaucoup plus de problèmes que vous pouvez imaginer ..

+0

Okay - cela a fonctionné partiellement, mais il semble que je ne peux faire que * ONE * postback. Par exemple, si je recherche LastName = 'Smith' AND FirstName = 'John', je récupère les données. Mais si je veux affiner la recherche à quelque chose comme FirstName = 'Johnathan' il ne se passe rien quand je clique de nouveau sur le contrôle ASP: Button qui a fonctionné la fois précédente. Des idées? –

+0

Vous recevez des erreurs (javascript ou code)? Je ne peux pas imaginer pourquoi poster deux fois ne fonctionnerait pas. Le bouton de recherche est-il à l'intérieur ou à l'extérieur du panneau de mise à jour? –

+0

Je reçois une erreur javascript sur le chargement de la page initiale en développement: quelque chose à propos d'une valeur «e» étant indéfinie, mais je n'ai rien défini pour le moment. Peut-il y avoir une erreur dans la plate-forme elle-même? –

Questions connexes