我的问题场景如下:
我有一个绑定到 objectdatasourceA 的 GridviewA。当我单击 GridviewA 行时,我希望另一个 objectdatasourceB 从 GridViewA 中选择 ID,然后获取 GridviewB 的记录。这就像主细节。
我可以这样做以及如何使用 javascript/jqueryscript 使其顺利进行。
我的问题场景如下:
我有一个绑定到 objectdatasourceA 的 GridviewA。当我单击 GridviewA 行时,我希望另一个 objectdatasourceB 从 GridViewA 中选择 ID,然后获取 GridviewB 的记录。这就像主细节。
我可以这样做以及如何使用 javascript/jqueryscript 使其顺利进行。
你的内部对象数据源应该看起来像
<asp:ObjectDataSource ID="ObjectDataSource1" runat="server" SelectMethod="Getmethod"
TypeName="namespace">
<SelectParameters>
<asp:ControlParameter ControlID="GridView1" Name="YourFieldName" PropertyName="SelectedValue"
Type="Int32" />
</SelectParameters>
</asp:ObjectDataSource>
首先确保您已将 gridview A 上的 dataKey 属性设置为底层对象的 ID 属性(或您想要传递给 objectDataSource B 的 select 方法的任何内容)
然后转到objectDataSource B,对其进行配置,选择接受参数的选择方法,然后单击下一步。它会询问您从哪里获取该参数(我认为您可以在控件、会话和其他内容之间进行选择)并选择控件,它将填充页面上所有控件的列表并选择您的 gridview A。
这会将所选行 dataKey 从 gridview A 传递给链接到 objectDataSource B 的方法。选择代码将运行,然后您的 gridview B 将显示所需的子集。如果您在 gridView A 中选择一个新行,它将自动更新 gridview B 以显示所需的数据。
假设您的方法设置正确,您几乎不需要编写任何代码就可以做到这一点。如果您要这样做,请查看一些可用的缓存方法,因为根据记录集的大小,它可能会占用大量带宽。