2012-07-05 64 views
0

我申請onselectedindexchangedevent上RadioButtonList的,但是當我點擊
radiobuttton,單選按鈕是不是選擇了一個運動,它選擇,然後
取消。我還設置回傳= true.but是不費一槍..SelectedIndexChanged事件不是射擊單選按鈕列表

**.aspx** 

     <asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="false"> 
        <Columns> 
        <asp:TemplateField> 
        <ItemTemplate> 
         <asp:Label ID="Label1" runat="server" Text="Label"></asp:Label> 
         <asp:RadioButtonList ID="RadioButtonList1" runat="server" 
    AutoPostBack="true"RepeatDirection="Horizontal"OnSelectedIndexChanged="clicked"> 

        <asp:ListItem Value="agree" Selected="True" ></asp:ListItem> 
         <asp:ListItem Value="agree"></asp:ListItem> 
         </asp:RadioButtonList> 

        </ItemTemplate> 

        </asp:TemplateField> 

        </Columns> 
        </asp:GridView> 


    **.aspx.cs** 



    public void clicked(object sender, EventArgs arg) 
     { 

      test t = new test(); 
      questiondal d = new questiondal(); 

      GridViewRow row= ((RadioButtonList )sender).NamingContainer as GridViewRow; 
     RadioButtonList list= (RadioButtonList)row.FindControl("Radio"); 
    list.SelectedIndexChanged(); 
    Label4.Text= list.SelectedValue; 




     } 

回答

0

試着改變你的代碼:

RadioButtonList list= (RadioButtonList)row.FindControl("Radio"); 

要:

RadioButtonList list= (RadioButtonList)row.FindControl("RadioButtonList1"); 

由於Gridview中沒有名爲'Radio'的控件。 希望這會解決你的問題。

+0

我這樣做,但仍然是事件沒有解僱 – user1479485 2012-07-05 17:26:41

+0

你可以paset你的代碼selectedindexchanged你在線調用: list.SelectedIndexChanged(); – 2012-07-06 04:23:30

2

確保gridview在發生回發時不會重新加載。 確保您的代碼是這樣的:

protected void Page_Load(object sender, EventArgs e) 
{ 
    If(!IsPostBack) 
    { 
     GridView1.DataSource = dataTable; 
     GridView1.DataBind(); 
    } 
} 

當單選按鈕事件被觸發Page_Load事件再次發射,但在網格不會刷新,點擊的方法將火。

+0

是的,我這樣做,但仍然事件我不發射???? // – user1479485 2012-07-05 17:27:04

+0

請發送您的代碼,您加載網格的地方 – 2012-07-06 06:40:18