Déterminer la valeur DDL pour la création de colonnes dynamiques dans un événement oninit

StackOverflow https://stackoverflow.com/questions/827547

  •  05-07-2019
  •  | 
  •  

Question

Bonjour, espérons qu’il existe une solution simple à ce problème complexe. S'il vous plaît, corrigez toutes les idées fausses que j'ai en cours de route.  Il y a quelque temps, j'ai écrit GrivView avec une capacité de colonne dynamique. Les colonnes sont ajoutées à l'événement de page OnInit afin d'être ajoutées AVANT que l'état d'affichage soit appliqué. Elles sont réappliquées à chaque publication dans cette section de la page, de sorte que lorsque l'application Viewstate est appliquée, les modifications apportées par l'utilisateur et non validées dans la base de données sont conservées. Cela est également nécessaire si vous ne voulez pas que votre arborescence de contrôle viewstate ne se synchronise pas et ne fasse tout exploser.

Mon problème actuel est que je suis maintenant chargé de faire essentiellement la même chose. Les colonnes seront différentes en fonction d'une liste déroulante (je recréerai le GridView si le ddl change, et les utilisateurs perdront tout travail avec un Attention). Comment puis-je obtenir l'ID sélectionné dans la liste déroulante de l'événement OnInit? Si j'ai bien compris, lorsque l'utilisateur modifie la valeur du ddl côté client, un script JavaScript & # 8220; __ doPostBack & # 8221; L'appel est déclenché. La demande de page est ensuite envoyée au serveur, mais au moment où la nouvelle valeur est présente dans le gestionnaire d'événements, j'ai dépassé le point où j'ai besoin d'ajouter les colonnes.

J'ai vu quelque chose qui, à mon avis, était prometteur lorsque les gens essayaient de déterminer quel contrôle provoquait une publication, mais ce code repose sur la page.Request.Params.Get ("__ EVENTTARGET"); et page.Request.Form qui sont vides.

Si je regarde l'état de la session, essayez de & # 8216; envoyer & # 8217; l'ID utilisant la manipulation côté client, ou une autre méthode (peut-être une façon sournoise de regarder dans l'état d'affichage que je manque)?

Merci pour vos idées !!!

Était-ce utile?

La solution

La valeur soumise par un contrôle est disponible dans la collection Request [] même s'il semble que votre formulaire n'ait pas encore été reconstruit.

Vous devriez simplement pouvoir obtenir la valeur sélectionnée pendant Init () en utilisant les éléments suivants:

string value = Request["myDropDownID"];
Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top