簡體   English   中英

分層GridView中的行索引

[英]Row index from hierarchical gridview

我有這樣的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鏈接按鈕的click事件上獲取gvTest gridview的行索引。 所以我嘗試了這段代碼-

 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

您需要添加更多級別以獲得正確的命名約束:

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;
}

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM