0

ラジオボタンリストにonselectedindexchangedeventを適用しますが、ラジオボタンをクリックすると
、ラジオボタンが移動を選択せず​​、選択してから選択を解除します
。また、postback = trueを設定しますが、起動しません。

**.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;




        }
4

2 に答える 2

2

ポストバックが発生したときに gridview がリロードされていないことを確認してください。コードが次のようになっていることを確認します。

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

ラジオ ボタン イベントが発生すると、Page_Load イベントが再び発生しますが、グリッドは更新されず、Clicked メソッドが発生します。

于 2012-07-05T12:33:57.253 に答える
0

コードを変更してみてください:

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

に:

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

「ラジオ」という名前のグリッドビューにコントロールがないためです。これで問題が解決することを願っています。

于 2012-07-05T12:11:47.137 に答える