如何基于外部gridview选择填充内部gridview(ASP.NET/C#)
我有两个GridView,InnerGridView嵌套在OuterGridView的TemplateField中。 每个GridView都有一个ObjectDataSource(ODS)。我希望InnerGridView显示唯一的数据 到OuterGridView中列出的组名。我已经在谷歌上搜索了几个星期, 看到基于RowDataBond和ODS选择事件的各种想法 我认为RowDataBond不是答案,因为InnerGridView的Selecting事件是ODS 为OuterGridView调用RowDataBound时已调用 因此,我需要向InnerGridView的ODS发送一个参数:如何基于外部gridview选择填充内部gridview(ASP.NET/C#),c#,asp.net,gridview,nested,objectdatasource,C#,Asp.net,Gridview,Nested,Objectdatasource,我有两个GridView,InnerGridView嵌套在OuterGridView的TemplateField中。 每个GridView都有一个ObjectDataSource(ODS)。我希望InnerGridView显示唯一的数据 到OuterGridView中列出的组名。我已经在谷歌上搜索了几个星期, 看到基于RowDataBond和ODS选择事件的各种想法 我认为RowDataBond不是答案,因为InnerGridView的Selecting事件是ODS 为OuterGridView
protected void ProductDataSource_Selecting( object sender, ObjectDataSourceSelectingEventArgs e ) {
e.InputParameters["productGroup"] = <here I need to access the GroupName from the OuterGridView>;
}
protectedvoid ProductDataSource\u正在选择(对象发送方、对象数据源选择事件参数e){
e、 InputParameters[“productGroup”]=;
}
注意:此方法分配给InnerGridView ODS的Selecting事件
我的问题是:如何从OuterGridView访问GroupName。。。当我处理InnerGridView时。
下面是一个不起作用的示例:OuterGridView.SelectedRow.FindControl(“GroupName”).ToString()
我听说,通过搜索特定的层次结构,可以从Selecting事件中找到任何控件。
但我不知道如何使用“e”或“sender”参数访问该层次结构。
如果我能找到各种对象和控件的解释。。。以及它们具有有效作用域的位置
以及如何访问它们。。。那会有帮助的
非常感谢,,Paul如果将发送方对象强制转换为gridview对象en,则在此处使用like和获取组名?如果将发送方对象强制转换为gridview对象en,则在此处使用like和获取组名?如果要将内部gridview与外部gridview的组名绑定,请执行以下步骤 1) 如果(!IsPostBack)绑定外部GridView。 2) 在外部GridViews RowDataBound事件中,通过检查条件查找内部GridView 如果(e.Row.RowType==DataControlRowType.DataRow) { DataRowView drv=((DataRowView)e.Row.DataItem); GridView InnerGridView=(GridView)e.Row.FindControl(“InnerGridView”); 如果(InnerGridView!=null) { string GroupName=drv[“GroupName”];//获取GropName。 InnerGridView.DataSource=“Query WRT the GroupName”; InnerGridView.DataBind(); }
}如果要将内部GridView与外部GridView的GroupName绑定,请执行以下步骤 1) 如果(!IsPostBack)绑定外部GridView。 2) 在外部GridViews RowDataBound事件中,通过检查条件查找内部GridView 如果(e.Row.RowType==DataControlRowType.DataRow) { DataRowView drv=((DataRowView)e.Row.DataItem); GridView InnerGridView=(GridView)e.Row.FindControl(“InnerGridView”); 如果(InnerGridView!=null) { string GroupName=drv[“GroupName”];//获取GropName。 InnerGridView.DataSource=“Query WRT the GroupName”; InnerGridView.DataBind(); }
}希望以下内容能有所帮助 ASPX页面:
<asp:ObjectDataSource ID="ODS1" runat="server"></asp:ObjectDataSource>
<asp:GridView ID="GV1" runat="server" DataKeyNames="productGroup"
onrowdatabound="GV1_RowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:ObjectDataSource ID="ODS2" runat="server">
</asp:ObjectDataSource>
<asp:GridView ID="GV2" runat="server">
</asp:GridView>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
注意使用数据键保存产品组详细信息
显然,您需要配置对象数据源,并根据需要将它们连接到GridView
这是从使用SQL数据源概述嵌套GridView改编而来的,但页面生命周期应该是相同的。希望以下内容有所帮助 ASPX页面:
<asp:ObjectDataSource ID="ODS1" runat="server"></asp:ObjectDataSource>
<asp:GridView ID="GV1" runat="server" DataKeyNames="productGroup"
onrowdatabound="GV1_RowDataBound">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:ObjectDataSource ID="ODS2" runat="server">
</asp:ObjectDataSource>
<asp:GridView ID="GV2" runat="server">
</asp:GridView>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
注意使用数据键保存产品组详细信息
显然,您需要配置对象数据源,并根据需要将它们连接到GridView
这是从使用SQL数据源概述嵌套GridView改编而来的,但页面生命周期应该是相同的