J'essaie de trouver une réponse à cette question depuis des jours et j'ai du mal à croire que cela ne puisse être fait.Accéder aux données récupérées
Je veux aller à la DataSet/DataTable
qui est construit lorsqu'une méthode SqlDataSource.Select
est appelée automatiquement par l'exécution ASP.NET lorsqu'une page est en cours de construction.
Je sais que je peux l'exécuter en code, mais cela fait un deuxième voyage à la base de données et je voudrais vraiment éviter cela. Chaque exemple que j'ai trouvé vous dit d'exécuter la méthode Select dans le code derrière.
Y a-t-il un moyen d'accéder aux données qui ont déjà été récupérées?
Vous savez, j'ai essayé de comprendre cela une fois, il y a des années, et a décidé qu'il était plus facile de lier le code dans le code-behind donc j'ai eu un accès plus facile à l'ensemble de données. Si quelqu'un sait comment faire cela, cela pourrait changer la façon dont j'aborde des situations similaires à l'avenir. +1 pour demander. – David
Je n'utiliserais pas ce contrôle du tout. Au lieu de cela, utilisez ADO.NET (par exemple 'DataAdapter.Fill (DataTable)') ou un vrai mappeur ORM comme NHibernate ou Entity framework. De toute façon, il n'est pas clair pourquoi vous pensez que "le code derrière fait un deuxième voyage dans la base de données". Utilisez 'if (! IsPostBack)' alors. –
Ne pas vraiment avoir le choix sur le contrôle. J'ai besoin de changer une page existante et je n'ai pas le luxe de la réécrire. Lorsque vous appelez la méthode Select sur le SqlDataSource, il effectue un déplacement vers la base de données selon Microsoft http://msdn.microsoft.com/en-us/library/system.web.ui.webcontrols.sqldatasource.select.aspx – dscarr