ASP.NET 2.0: A especificação de uma instância de um objecto para um ObjectDataSource
-
29-08-2019 - |
Pergunta
Eu estou usando um ObjectDataSource com dados vincular a um GridView; ele funciona bem, exceto que ele sempre cria um novo objeto para usar como uma fonte de dados. Eu posso fazer toda a configuração muito bem, mas eu não posso usar uma instância de um objeto existente para especificar como a "fonte de dados" para ele. É possível fazer isso? Se sim, como?
Se não for possível, por quê?
EDIT: Aqui está a essência do que está acontecendo (tipos de objetos alterados): Na primeira página que você está editting os atributos para um cão. Um dos atributos é "tem cachorros" e se é verdade, a próxima página você especificar os nomes dos filhotes. O que está acontecendo no meu caso é que esses filhotes não estão ficando ligado ao cão original, mas a um cão "novo". (A implicação de que o meu problema é a "cadela" foi coincidência. ;-))
Solução
Criar um manipulador de eventos para o evento ObjectCreating no ObjectDataSource.
Você pode atribuir a instância para o uso da propriedade ObjectDataSourceEventArgs
protected void ObjectDataSource1_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
{
e.ObjectInstance = myObject;
}
Fio este evento se na marcação demasiado
<asp:ObjectDataSource OnObjectCreating="ObjectDataSource1_ObjectCreating" />
Outras dicas
Como eu só descobri em minha própria pergunta aqui, os itens armazenados no cache de aplicativos vão passar-se como uma referência para o uso. Você pode considerar armazenar seus dados lá (ou potencialmente na Sessão bem) e passar os itens que forma.