2008-12-29 56 views
3

我使用ObjectDataSource将数据绑定到GridView;它工作正常,除了它总是创建一个新的对象用作数据源。我可以完成所有设置,但我无法使用现有对象的实例将其指定为“数据源”。是否有可能做到这一点?如果是这样,怎么样?ASP.NET 2.0:为ObjectDataSource指定对象的一个​​实例

如果这是不可能的,为什么?

编辑:这里是发生了什么事情(对象类型更改)的要点:在第一页上,您正在编辑一只狗的属性。其中一个属性是“有小狗”,如果它是真的,则在下一页指定这些小狗的名字。我的情况是,这些小狗没有与原来的狗联系在一起,而是与一只“新”狗联系在一起。 (这意味着我的问题是“女性狗”是巧合的; ;-))

回答

8

为ObjectDataSource上的ObjectCreating事件创建一个事件处理程序。

您可以将实例分配给使用ObjectDataSourceEventArgs财产

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

线这个事件了在标记过

<asp:ObjectDataSource OnObjectCreating="ObjectDataSource1_ObjectCreating" /> 
0

因为我刚刚发现in my own question这里,应用程序缓存中存储的项目将作为参考供其使用。您可以考虑将数据存储在那里(或者可能在会话中),并以这种方式传递项目。

+0

我想使用的对象是在会话。你知道我该如何指定该对象作为我的ObjectDataSource的源代码? – 2008-12-29 18:20:12

+0

只需将会话对象包装在直接强制转换语句中即可指定该项目的格式。在VB.net中,沿着MyObjectDataSource = DirectCast(Session(“MyStoredData”),DataTable)行的东西 – 2008-12-29 18:26:19

相关问题