我有这样的gridview结构 -
<asp:GridView ID="gvTest" runat="server" AutoGenerateColumns="false"
Width="100%">
<Columns>
<asp:TemplateField HeaderText="Rule Name" ItemStyle-VerticalAlign="Top">
<ItemTemplate>
<asp:Label ID="lblRuleName" runat="server" Text='<%# Bind("RuleName") %>'></asp:Label>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Source" ItemStyle-VerticalAlign="Top">
<ItemTemplate>
<asp:GridView ID="gvSource" runat="server" ShowHeader="false" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="imgExpandSource" runat="server" ImageUrl="~/plus.png" onclick="imgExpandSource_Click"/>
<asp:ImageButton ID="imgExpandSource1" runat="server" ImageUrl="~/Minus.png" onclick="imgExpandSource1_Click" Visible="false"/>
<asp:Label ID="lblSourceObjName" runat="server" Text='<%# Bind("SourceObjName") %>'></asp:Label>
<asp:GridView ID="gvSourceObj" runat="server" ShowHeader="false" Visible="false">
</asp:GridView>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Destination" ItemStyle-VerticalAlign="Top">
<ItemTemplate>
<asp:GridView ID="gvDestination" runat="server" ShowHeader="false" AutoGenerateColumns="false">
<Columns>
<asp:TemplateField>
<ItemTemplate>
<asp:ImageButton ID="imgExpand" runat="server" ImageUrl="~/plus.png" onclick="imgExpand_Click"/>
<asp:ImageButton ID="imgExpand1" runat="server" ImageUrl="~/Minus.png" onclick="imgExpand1_Click" Visible="false"/>
<asp:Label ID="lblDestObjName" runat="server" Text='<%# Bind("DestObjName") %>'></asp:Label>
<asp:GridView ID="gvDestObj" runat="server" ShowHeader="false" Visible="false">
</asp:GridView>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
</ItemTemplate>
</asp:TemplateField>
<asp:TemplateField HeaderText="Service Group" ItemStyle-VerticalAlign="Top">
<ItemTemplate>
<asp:GridView ID="gvServiceObject" runat="server" ShowHeader="false">
</asp:GridView>
</ItemTemplate>
</asp:TemplateField>
</Columns>
</asp:GridView>
现在我想在imgExpandSource链接按钮的点击事件中获取gvTest gridview的Row索引。所以我尝试了这段代码 -
protected void imgExpandSource_Click(object sender, ImageClickEventArgs e)
{
ImageButton imgExpandSource = sender as ImageButton;
GridViewRow gvrow = (GridViewRow)imgExpandSource.NamingContainer;
int x = gvrow.RowIndex;
}
但是这给了我gvSource gridviews行索引。如何获得gvTest gridviews行索引。请有人帮助我。
由于 Gulrej
答案 0 :(得分:0)
您需要添加更多级别才能获得正确的命名容器:
protected void imgExpandSource_Click(object sender, ImageClickEventArgs e)
{
ImageButton imgExpandSource = sender as ImageButton;
GridViewRow gvrow = (GridViewRow)imgExpandSource
// GridViewRowRow of gvSource
.NamingContainer
// gvSource
.NamingContainer
// GridViewRow of gvTest
.NamingContainer;
int x = gvrow.RowIndex;
}