2011-05-12 1 views

Répondre

1

Vous devez généralement déterminer et d'ajouter ces contrôles via la page OnInit surcharge ou d'un événement Page_Init, et assurez-vous de le faire sur toutes les demandes, y compris postbacks. Définissez des variables locales pour contenir les objets que vous pouvez créer (cela peut être un List<> si vous ne savez pas combien en existeront à l'avance), et instanciez-les comme tout autre objet, définissez leurs propriétés, puis ajoutez à la collection Controls de l'objet conteneur dans lequel ils devraient se trouver; Par défaut, ils seront ajoutés à la fin du conteneur, mais vous pouvez les Insert au lieu de Add si vous le souhaitez.

En supposant que vous les recréer comme ceci à chaque fois, et le faire pendant Init, vous pouvez y accéder - y compris viewstate, le cas échéant - de l'événement Load/surcharge.

+0

Je pense que cela nécessite un appel DB sur chaque publication car mon contrôle provient de DB. Que se passe-t-il si l'utilisateur a sélectionné une option et a fait la publication, puis si je lie de nouveau ces commandes, la sélection de l'utilisateur ne persistera pas? alors je dois enregistrer les options choisies par l'utilisateur et les restaurer. Y at-il une approche que je peux utiliser qui n'a pas besoin d'ajouter des contrôles sur chaque publication? –

+0

Quoi que vous deviez faire pour sélectionner les contrôles à créer, faites-le où j'ai noté ci-dessus; dans 'Init'. Assurez-vous de définir toutes les mêmes propriétés que vous définissez normalement dans l'ASPX - en particulier en incluant 'Name'. Si vous le faites au bon moment, sur * tous * les postbacks, il sera * rempli * avec des valeurs fournies par l'utilisateur comme tout autre contrôle sur la page. –

Questions connexes