Asp.net 在gridview中的下拉列表中,在OnSelectedIndexChanged上查找GridRow
我有一个asp.NETGridView。dropdownlist类型的模板字段包含在一列中:Asp.net 在gridview中的下拉列表中,在OnSelectedIndexChanged上查找GridRow,asp.net,datagridview,Asp.net,Datagridview,我有一个asp.NETGridView。dropdownlist类型的模板字段包含在一列中: <asp:TemplateField HeaderTextLabel="strManagedOETeamart"> <ItemTemplate> <asp:DropDownList runat="server" AutoPostBack="True" OnSelected
<asp:TemplateField HeaderTextLabel="strManagedOETeamart">
<ItemTemplate>
<asp:DropDownList runat="server" AutoPostBack="True" OnSelectedIndexChanged="SelectedTeamartChanged">
<asp:ListItem Selected="True" Value="White"> White </asp:ListItem>
<asp:ListItem Value="Silver"> Silver </asp:ListItem>
<asp:ListItem Value="DarkGray"> Dark Gray </asp:ListItem>
<asp:ListItem Value="Khaki"> Khaki </asp:ListItem>
<asp:ListItem Value="DarkKhaki"> Dark Khaki </asp:ListItem>
</asp:DropDownList>
</ItemTemplate>
</asp:TemplateField>
您正在寻找房产:
GridViewItem row = (GridViewRow)dropDown.NamingContainer;
顺便说一下,这适用于任何类型的web数据绑定控件,如GridView
、DataList
、Repeater
或ListView
考虑这个更复杂的需求:您有一个GridView
,它嵌套在另一个GridView
中。现在,您正在处理一个DropDownList的SelectedIndexChanged
事件,该事件位于子GridView
中,您希望获取父GridView
的GridViewRow
的引用:
var control = (Control)sender;
var row = (GridViewRow)control.NamingContainer;
var parentRow = (GridViewRow)row.NamingContainer.NamingContainer;
这是最安全最简单的方法
var control = (Control)sender;
var row = (GridViewRow)control.NamingContainer;
var parentRow = (GridViewRow)row.NamingContainer.NamingContainer;