链接两个ObjectDataSource

时间:2009-10-06 16:43:09

标签: asp.net gridview objectdatasource

我的问题场景如下:

我有一个GridviewA绑定到objectdatasourceA。当我单击GridviewA行时,我希望另一个objectdatasourceB从GridViewA中选择ID,然后获取GridviewB的记录。这就像masterdetail。

我可以这样做以及如何使用javascript / jqueryscript使其顺利进行。

2 个答案:

答案 0 :(得分:0)

你的内部objectdatasource应该看起来像

<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="Getmethod"
                TypeName="namespace">
                <SelectParameters>
                    <asp:ControlParameter ControlID="GridView1" Name="YourFieldName" PropertyName="SelectedValue"
                        Type="Int32" />
                </SelectParameters>
            </asp:ObjectDataSource>

答案 1 :(得分:0)

首先确保您已将gridview A上的dataKey属性设置为基础对象的ID属性(或者您希望传递给objectDataSource B的select方法的任何内容)

然后转到objectDataSource B,配置它,选择接受参数的select方法,然后单击“下一步”。它将询问您从哪里获取该参数(我认为您可以在控件,会话和其他内容之间进行选择)并选择控件,它将填充页面上所有控件的列表并选择您的gridview A.

这会将所选行dataKey从gridview A传递给链接到objectDataSource B的方法。选择代码将运行,然后gridview B将显示所需的子集。如果在gridView A中选择一个新行,它将自动更新gridview B以显示所需的数据。

假如你的方法设置正确,你可以用很少的代码编写代码。如果您打算这样做,请查看一些可用的缓存方法,因为根据您的记录集的大小,它可能会带来很大的带宽。