我有 2 个网格视图,gv1
还有gv2
一个ObjectDataSource
id ods1
。两个网格视图都指向DataSourceID="ods1"
.
我的问题是,我怎么知道在选择ObjectDataSource
gridview 调用的事件时ods1
。我想根据哪个 gridview 调用了ods1
.
我有 2 个网格视图,gv1
还有gv2
一个ObjectDataSource
id ods1
。两个网格视图都指向DataSourceID="ods1"
.
我的问题是,我怎么知道在选择ObjectDataSource
gridview 调用的事件时ods1
。我想根据哪个 gridview 调用了ods1
.
我倾向于同意Wiktor Zychla 的回答,但如果你真的需要这样做......
我能想到的唯一方法是处理每个GridView
s 的“DataBinding”事件,并设置一个会话变量来指示哪个将调用ObjectDataSource
“Selecting”事件。
所以你会有你的GridView
方法:
protected void gv1_DataBinding(object sender, EventArgs e)
{
Session["currentGridID"] = "gv1";
}
和
protected void gv2_DataBinding(object sender, EventArgs e)
{
Session["currentGridID"] = "gv2";
}
然后,您可以检查该 Session 变量,以查看这次触发时ObjectDataSource
其中的 ID :ObjectDataSource
protected void ods1_Selecting(object sender, ObjectDataSourceSelectingEventArgs e)
{
if(Session["currentGridID"] == "gv1")
{
}
else
{
}
}
我认为这并不容易,而且感觉这与 ODS 背后的想法背道而驰。
您可以委托两个ObjectDataSource
s 从相同的存储库类中获取数据,但如果您想拥有两组不同的参数,您仍然需要两个不同的数据源。因此,您不会复制代码,因为存储库代码在对象数据源实例之间共享。
获取调用objectdatasource的gridview的名称
您可以执行以下操作:
string CallingGridName = ((ObjectDataSourceID)sender).ID;