ASP.NET 2.0: La spécification d'une instance d'un objet pour un ObjectDataSource
-
29-08-2019 - |
Question
J'utilise un ObjectDataSource pour lier les données à un GridView; il fonctionne très bien, sauf qu'il crée toujours un nouvel objet à utiliser comme source de données. Je peux faire tout le programme d'installation très bien mais je ne peux pas utiliser une instance d'un objet existant pour indiquer que la « source de données » pour elle. Est-il possible de faire cela? Si c'est le cas, comment?
S'il est impossible, pourquoi?
EDIT: Voici l'essentiel de ce qui se passe (types d'objets modifiés): Sur la première page vous Editting les attributs d'un chien. L'un des attributs est « a chiots » et s'il est vrai, la page suivante vous indiquer les noms de ces chiots. Qu'est-ce qui se passe dans mon cas est que ces chiots ne sont pas liés à obtenir le chien d'origine, mais à un chien « nouveau ». (L'implication que mon problème est un « chienne » était une coïncidence. ;-))
La solution
Créer un gestionnaire d'événements pour l'événement ObjectCreating sur le ObjectDataSource.
Vous pouvez assigner l'instance à l'aide de la propriété ObjectDataSourceEventArgs
protected void ObjectDataSource1_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
{
e.ObjectInstance = myObject;
}
Fil cet événement dans le balisage trop
<asp:ObjectDataSource OnObjectCreating="ObjectDataSource1_ObjectCreating" />
Autres conseils
Comme je viens de découvrir dans ma propre question ici , les éléments stockés dans le cache de l'application vont se faire passer comme une référence à l'emploi. Vous pouvez envisager de stocker vos données là (ou potentiellement à la session ainsi) et passer des éléments de cette façon.