开发者

Gridview template radiobuttonlist SelectedInxedChanged, Getting the row the list was in when it fired

I have a Gridview in which one of the template fields has a radiobuttonlist and a dropdownlist. How can I access the row that the radiobuttonlist is in on the SelectedIndexChanged event, so I don't end up updating all of the dropdownlist inside the that template field of the gridview开发者_运维百科. I don't have any code currently but any help would be greatly appreciated


<asp:TemplateField HeaderText="Column with ListControls" >
    <ItemTemplate>
         <asp:DropDownList ID="DropdownList1" OnSelectedIndexChanged="SomethingChanged" AutoPostBack="true" runat="server" >
             <asp:ListItem Text="1"></asp:ListItem>
             <asp:ListItem Text="2"></asp:ListItem>
         </asp:DropDownList>
         <asp:RadioButtonList ID="RadioButtonList1" OnSelectedIndexChanged="SomethingChanged" AutoPostBack="true" runat="server">
             <asp:ListItem Text="1"></asp:ListItem>
             <asp:ListItem Text="2"></asp:ListItem>
         </asp:RadioButtonList> 
    </ItemTemplate>
</asp:TemplateField>

Codebehind VB.NET:

Protected Sub SomethingChanged(ByVal sender As Object, ByVal e As EventArgs)
   'in this example this handler is used for both, Dropdownlist and RadiobuttonList'
    Dim listControl = DirectCast(sender, ListControl)
    Dim row = DirectCast(listControl.NamingContainer, GridViewRow)
    Dim item = listControl.SelectedItem
    'with FindControl on the row you could also find controls in other columns...' 
End Sub

C#:

protected void SomethingChanged(object sender, EventArgs e)
{
    //in this example this handler is used for both, Dropdownlist and RadiobuttonList
    var listControl = (ListControl)sender;
    var row = (GridViewRow)listControl.NamingContainer;
    var item = listControl.SelectedItem;
    //with FindControl on the row you could also find controls in other columns...
}
0

上一篇:

下一篇:

精彩评论

暂无评论...
验证码 换一张
取 消

最新问答

问答排行榜