如何在ObjectDataSource中调用Gridview名称选择事件

时间:2013-03-19 11:57:47

标签: asp.net datagridview objectdatasource

我有2个网格视图,gv1gv2以及标识为ObjectDataSource的{​​{1}}。两个网格视图都指向ods1

我的问题是,在选择DataSourceID="ods1"的事件时,我如何知道哪个gridview已调用ObjectDataSource。我想根据gridview调用ods1来设置输入参数。

3 个答案:

答案 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;