Question

J'ai examiné des questions similaires sur Stack Overflow, mais je n’ai pas pu trouver la solution à ce problème particulier. J'ai une page ASP.NET simple (pas vraiment, mais supposons) avec un panneau de mise à jour à l'intérieur.

Ce panneau de mise à jour contient un contrôle HiddenField avec une valeur qui sera définie / mise à jour via mon propre JavaScript personnalisé. La valeur est mise à jour comme je peux le voir dans le DOM à l'aide de Firebug.

À côté de ce HiddenField , un LinkButton appelle le code JavaScript pour modifier la valeur du HiddenField à l'aide de OnClientClick (ça marche). Le LinkButton a également un gestionnaire OnClick qui est exécuté après la modification de la valeur.

Cependant, dans le gestionnaire OnClick , je récupère la valeur initiale du HiddenField et non la valeur définie par JavaScript!

Pourquoi est-ce? S'agit-il de PEBKAC "?

EDIT: vous avez essayé la même chose avec une zone de texte sans succès. Essayez également de modifier manuellement la valeur à l’aide de Firebug avant de soumettre le formulaire, sans succès.

EDIT 2: je viens de me rendre compte que Page_Load était appelé avant le gestionnaire OnClick , qui gâchait tout. Je ne supprimerai pas la question, car d'autres personnes pourraient avoir le même problème et pourraient trouver cette question utile.

Était-ce utile?

La solution

Vous devrez le faire à l'aide de l'événement EndRequestHandler, fourni par le panneau de mise à jour AJAX.

Veuillez regarder ceci - >

http://www.codeproject.com/KB/ajax /AfterAjaxUpdate.aspx?display=Print

Autres conseils

Cela me semble comme si le viewstate vous faisait une mauvaise blague (comme souvent). Ce que je suppose, c’est que lorsque la page est renvoyée, le champ masqué est initialisé avec la valeur contenue dans le Viewstate.

Essayez une chose: n'accédez pas à la valeur directement via votreHiddenField.Value , mais dans le OnInit de votre page, récupérez-la avec Request.Forms [yourHiddenField.UniqueId] et lancez-le dans un HiddenField et extrayez la valeur. Je ne suis pas sûr que ce soit la bonne syntaxe. Le " posté " les valeurs devraient être quelque part dans l'objet Request si je me souviens bien. Voyez si vous obtenez la valeur là-bas. Si vous l'obtenez là, le problème est l'état d'affichage qui est mappé après l'événement OnInit de la page. Ensuite, nous devons trouver une solution pour cela ...

Comment générez-vous la nouvelle entrée sur le client? Serait-il possible de le faire sur le serveur à la place?

De cette façon, vous pouvez utiliser uniquement le OnClick au lieu des deux OnClick et OnClientClick .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top