1

我有 2 个网格视图,gv1还有gv2一个ObjectDataSourceid ods1。两个网格视图都指向DataSourceID="ods1".

我的问题是,我怎么知道在选择ObjectDataSourcegridview 调用的事件时ods1。我想根据哪个 gridview 调用了ods1.

4

3 回答 3

0

警告:提前破解

我倾向于同意Wiktor Zychla 的回答,但如果你真的需要这样做......

我能想到的唯一方法是处理每个GridViews 的“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
    {

    }
}
于 2013-03-19T13:11:07.200 回答
0

我认为这并不容易,而且感觉这与 ODS 背后的想法背道而驰。

您可以委托两个ObjectDataSources 从相同的存储库类中获取数据,但如果您想拥有两组不同的参数,您仍然需要两个不同的数据源。因此,您不会复制代码,因为存储库代码在对象数据源实例之间共享。

于 2013-03-19T13:05:57.167 回答
-1

获取调用objectdatasource的gridview的名称

您可以执行以下操作:

string CallingGridName = ((ObjectDataSourceID)sender).ID;
于 2013-03-19T12:38:13.410 回答