2011-08-03 4 views
0

テンプレートフィールドの1つにradiobuttonlistとドロップダウンリストがあるGridviewがあります。 RadioButtonListがSelectedIndexChangedイベントの行にアクセスするには、どうすればよいのですか.Gridviewのテンプレートフィールド内のすべてのドロップダウンリストを更新することはありません。私は現在、任意のコードを持っていないが、任意のヘルプは大Gridview template radiobuttonlist SelectedInxedChanged、解雇時のリストの取得

答えて

1
<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> 

分離コードVB.NETいただければ幸いです。それのthats、

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

恐ろしい:

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#を。助けてくれてありがとう –