繁体   English   中英

在GridView中查找项目模板控件的行

[英]Find row of an item template control in gridview

我在ASP.NET中拥有一个带有保存下拉列表的项目模板的gridview。 我有一个用于下拉列表的事件(更改了选定的索引),在该事件中我需要找出该控件在gridview中的哪一行。有人知道如何完成此操作吗? (我稍后添加更多行,所以这就是为什么我需要我所在的行。)

<asp:gridview ID="grdTest" runat="server" ShowFooter="true" AutoGenerateColumns="false">
    <Columns>
    <asp:BoundField DataField="RowNumber" HeaderText="Query Line" />
    <asp:TemplateField HeaderText="Table Name">
        <ItemTemplate>
            <asp:DropDownList ID="DropDownList1" runat="server" AppendDataBoundItems="true" OnSelectedIndexChanged="DropDownList1_SelectedIndexChanged" AutoPostBack="True">
                <asp:ListItem Value="-1">Select</asp:ListItem>
            </asp:DropDownList>
        </ItemTemplate>
    </asp:TemplateField>
    </Columns>
</asp:gridview>


protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
    // TODO: Grab the row of the control here!
    int row = 0;
    DropDownList ddl = (DropDownList)sender; // How?
}

下面的代码将帮助您

Protected Sub DropDownList1_SelectedIndexChanged(ByVal sender As Object, ByVal e As System.EventArgs)
    Dim gvrow As GridViewRow = CType(sender, DropDownList).NamingContainer
    Dim index As Integer = CType(gvrow, GridViewRow).RowIndex
End Sub

你可以这样

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e)
{
  DropDownList ddl = (DropDownList) sender;
  GridViewRow row = (GridViewRow) ddl.NamingContainer;
  int rowIndex = row.RowIndex;
}

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM