我有2个网格视图,gv1
和gv2
以及标识为ObjectDataSource
的{{1}}。两个网格视图都指向ods1
。
我的问题是,在选择DataSourceID="ods1"
的事件时,我如何知道哪个gridview已调用ObjectDataSource
。我想根据gridview调用ods1
来设置输入参数。
答案 0 :(得分:0)
我认为这不容易实现,而且感觉它会违背ODS背后的想法。
您可以委派两个ObjectDataSource
来从THE SAME存储库类中获取数据,但是如果您想拥有两组不同的参数,则需要两个不同的数据源。因此,您不会复制代码,因为在对象数据源实例之间共享存储库代码。
答案 1 :(得分:0)
我倾向于同意Wiktor Zychla's answer,但如果真的需要这样做......
我唯一想到的就是处理每个GridView
的“DataBinding”事件,并设置一个会话变量来指示哪一个要调用{{1} “选择”事件。
所以你会得到ObjectDataSource
方法:
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
答案 2 :(得分:-1)
获取调用objectdatasource
的gridview的名称您可以执行以下操作:
string CallingGridName = ((ObjectDataSourceID)sender).ID;