2011-04-19 1 views

Répondre

1

Trouvez un autre moyen de stocker/récupérer/mettre en cache l'ensemble de données ou les valeurs spécifiques dont vous avez besoin.

Lorsque vous récupérez un jeu de données pour la première fois et que vous l'attribuez à une grille, vous pouvez y accéder pour le reste de la demande de page. Dès que la demande de page est terminée, le contexte et la page HTTP et tous les objets associés sont purgés, ils seront définis pour la récupération de place et détruits. (En ce qui nous concerne, de toute façon)

Lors de la publication suivante, la grille rechargera ses valeurs à partir de la forme, (et de certaines propriétés de l'état d'affichage), mais pas de l'ensemble de données, car cela n'a jamais été stocké dans l'état formulaire/vue. Garder un ensemble de données dans l'état d'affichage serait incroyablement inefficace. C'est pourquoi la propriété DataSource sera vide sur les publications ultérieures.

+0

Si vous n'avez besoin que d'une valeur spécifique (ou d'un ensemble de valeurs) d'une colonne de la grille (telle qu'un ID), vous pouvez utiliser la propriété DataKeys de la vue de la grille. (http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.gridview.datakeys.aspx) – KTF

0

Comme l'a mentionné une autre personne, une fois la requête terminée, les objets ne sont plus dans la portée. Comment liez-vous la grille au DataSet et faites-vous un if (! IsPostBack)?

Questions connexes