我的问题场景如下:
我有一个GridviewA绑定到objectdatasourceA。当我单击GridviewA行时,我希望另一个objectdatasourceB从GridViewA中选择ID,然后获取GridviewB的记录。这就像masterdetail。
我可以这样做以及如何使用javascript / jqueryscript使其顺利进行。
答案 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以显示所需的数据。
假如你的方法设置正确,你可以用很少的代码编写代码。如果您打算这样做,请查看一些可用的缓存方法,因为根据您的记录集的大小,它可能会带来很大的带宽。