Pregunta

Estoy usando un ObjectDataSource para enlazar datos a un GridView; funciona bien, excepto que siempre crea un nuevo objeto de utilizar como fuente de datos. Puedo hacer todo el programa de instalación muy bien, pero no puedo utilizar una instancia de un objeto existente para especificar como la "fuente de datos" para ello. ¿Es posible hacer esto? ¿Si es así, cómo?

Si no es posible, ¿por qué?

EDIT: Aquí está la esencia de lo que está pasando (tipos de objetos cambiados): En la primera página que está editando los atributos para un perro. Uno de los atributos es "tiene cachorros" y si es cierto, la página siguiente se especifica los nombres de los cachorros. Lo que está pasando en mi caso es que los cachorros no se están ligados al perro original, sino a un "nuevo" perro. (La implicación de que mi problema es una "perra" fue una coincidencia. ;-))

¿Fue útil?

Solución

Crear un controlador de eventos para el evento ObjectCreating en el ObjectDataSource.

Puede asignar a la instancia utilizando la propiedad ObjectDataSourceEventArgs

protected void ObjectDataSource1_ObjectCreating(object sender, ObjectDataSourceEventArgs e)
{
    e.ObjectInstance = myObject;
}

Alambre de este evento en el margen de beneficio también

<asp:ObjectDataSource OnObjectCreating="ObjectDataSource1_ObjectCreating" />

Otros consejos

Como acabo de descubrir en mi propia pregunta aquí, los elementos almacenados en la caché de aplicaciones van a pasar a sí mismos como una referencia para su uso. Usted puede considerar el almacenamiento de los datos allí (o potencialmente en la sesión también) y pasar artículos de esa manera.

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top