[英]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.