ASP.NET la Meilleure façon de conserver l'étiquette.valeur de texte entre de publication avec PageMethods
ASP.NET 2.0, PageMethods.
Bonne journée,
Je suis en utilisant ASP.NET AJAX PageMethods pour modifier dynamiquement le texte de l'Étiquette lorsqu'un dropdownlist est changé sur ma page.
Je sais que le texte des Étiquettes ne sont pas conservés entre les publications lorsqu'ils sont modifiés sur le côté client, ce qui est mon cas. J'ai entendu dire qu'une solution est de garder l'étiquette de contenu caché dans un champ, puis de définir le texte de l'Étiquette à partir de ce champ dans le Page_Load.
Cependant, cette solution ne semble pas vraiment propre à moi. Existe-il d'autres solutions de rechange ou de meilleures pratiques?
Merci!
Juste pour préciser, j'ai un dropdownlist avec les noms de personnes. Lorsque la dropdownlist se changer, je veux, dans un label, pour mettre le téléphone de cette personne. Cependant, j'ai pensé que faire une publication complète n'était pas vraiment la meilleure solution, j'ai donc décidé de obtenir le téléphone avec un PageMethod, en passant l'Id de l'élément sélectionné dans la liste déroulante pour récupérer le téléphone, et de le mettre dans l'étiquette.
Toutefois, étant donné que d'autres contrôles cause une publication complète, je perds le téléphone sur chaque publication. Je sais que de le mettre dans un champ caché, puis en fixant de nouveau à l'étiquette dans le Page_Load quand il y a une publication complète, mais j'ai été wordering si il y avait une autre solution. Depuis WebMethods sont marqués comme statique, je ne peux pas écrire de l'Étiquette.texte = la personne.De téléphone; en eux.
OriginalL'auteur Cedric Aube | 2009-04-01
Vous devez vous connecter pour publier un commentaire.
Que vous semblez avoir ajax, vous pourriez faire une publication partielle, écrire le numéro de l'étiquette et dans le viewstate, et dans le page_load écrire la valeur de l'état d'affichage de l'étiquette.
Dans la DropDownList gestionnaire:
Et sur PageLoad:
Si vous ne souhaitez pas utiliser Ajax, vous pouvez définir un HiddenInputField dans votre fichier aspx, remplir le contenu avec javascript et sur la Publication de remplir l'étiquette avec le contenu.
Sur aspx:
sur PageLoad:
OriginalL'auteur gsnerf
Je suggère de coller avec le champ caché de la solution, de sorte que vous pouvez garder votre logique en un seul endroit.
Une alternative est d'utiliser un panneau de mise à jour à la place de méthodes de page, mais je ne le ferais pas, parce que ce n'est pas bon pour la performance.
Comme d'autres l'ont dit, une troisième option consiste à exécuter la même logique sur le côté serveur, à chaque fois que la valeur sélectionnée de la liste déroulante, a changé. La seule duplication est juste pour faire un appel pour le code approprié que vous avez déjà.
OriginalL'auteur eglasius
Si les étiquettes de valeur est déterminé par la valeur de la liste déroulante, vous pouvez toujours dupliquer cette logique sur le serveur.
Si cette logique est trop complexe ou que vous ne voulez pas entretenir de multiples endroits, alors la meilleure option suivante est ce que vous avez suggéré. Je ne sais pas pourquoi vous pensez que ce n'est pas une solution propre, c'est un excellent moyen d'obtenir des renseignements du client vers le serveur.
OriginalL'auteur Daniel
Avez-vous envisagé de remettre le code dans le Document pour s'assurer que l'étiquette est qui reflète la valeur sur la base de la dropdownlist valeur? De cette façon, à chaque publication, vous aurez au moins être sûr d'obtenir la bonne valeur et vous n'avez pas à vous soucier de les stocker dans 2 endroits.
On dirait qu'il veut le texte pour refléter quelque chose selon ce qui est sélectionné par la dropdownlist. La Publication pourriez faire la même logique à chaque fois.
OriginalL'auteur Kelsey