2017-03-09 1 views
0

Voici comment mon code est configuré. La page Web elle-même fonctionne comme ceci:Comment configurer le chargement de page dans ASP.Net pour les vues de grille dynamiques?

Vous avez un menu déroulant qui vous permet de choisir entre différentes valeurs. Appelons la liste déroulante A. Selon la valeur sélectionnée, une grille est générée.

Fonctionnement de la génération: Lorsqu'un élément de la liste déroulante A est sélectionné, insideIndexChanged est un appel de méthode à une fonction qui crée un DataTable. Cette datatable est liée à la grille dans selectIndexChanged. Lorsqu'il est borné, onRowBoundEvent est appelé, et c'est là que j'ajoute tous les contrôles nécessaires avec des ID uniques.

Il y a un bouton appelé enregistré qui regarde les données dans gridview, et les enregistre. Problème: Lorsque j'appuie sur Enregistrer, il n'y a pas de contrôles dans la grille pour que je puisse les trouver.

Je peux utiliser findControl puisque je connais tous les identifiants, mais comment faire pour que les contrôles restent? Si je le lie dans la page_load, comment puis-je savoir quel gridview générer car si je sélectionne une valeur de dropdown A, page_load se déclenche toujours avant que je puisse obtenir une valeur de sélection de dropdown A, donc je ne peux pas faire une instruction conditionnelle simple basée sur la valeur de liste déroulante.

Je ne peux pas montrer de code, désolé. Mais c'est plus une question conceptuelle que j'ai.

Répondre

0

J'ai été capable de comprendre cela par moi-même. PrePage_Load pendant le cycle de vie du projet a accès aux contrôles.

Dropdown A dans mon exemple peut être consulté dans PrePage_Load, ce qui me permet d'obtenir les valeurs nécessaires et de les définir avant que Page_Load ne démarre.

Pour les contrôles dans le gridview, j'ai fait en sorte que le gridview ne se charge pas automatiquement à partir de viewstate, et j'ai reconstruit le gridview moi-même pendant page_load.