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. ;-))

Était-ce utile?

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.

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top