3

ラジオボタンを備えたリピーターがあります。

 <script type="text/javascript">
    $(document).ready(function () 
{
    $("#test input:radio").attr("name", "yourGroupName");
}); 
</script>
</head>
<body>
<form id="form1" runat="server">
<div>

<div id="test">
 <asp:Repeater runat="server" ID="rep" onitemdatabound="rep_ItemDataBound" 
        onitemcommand="rep_ItemCommand">
<ItemTemplate>   
<asp:RadioButton ID="n"  runat="server" Text='<%# Eval("name") %>'  AccessKey='<%# Eval("id")%>' />   
</ItemTemplate>    
</asp:Repeater>
</div>

上部の JavaScript を使用して、.net のラジオボタンのバグを修正しています。ページの読み込み時にリストをリピーターにバインドし、その(!Page.IsPostback)周りに if を付けます。 編集:

 protected void Page_Load(object sender, EventArgs e)
    {
        if (!Page.IsPostBack)
        {
            rep.DataSource = z.Table.ToList();
            rep.DataBind();
        }
    }

次に、クリックすると、選択されたラジオボタンで何かを行う必要があるボタンがあります。これが問題です:

     foreach (RepeaterItem i in rep.Items)
        {
            RadioButton erb = i.FindControl("n") as RadioButton;
            if (erb.Checked)
            {
                //do stuff
            }
         }

どのラジオボタンを選択しても、ボタンをクリックしてループ全体をデバッグすると、すべてのチェックボックス == false になります。私はコードでより多くのことをしていますが、これが最大の問題であるため、単純化しました。

この問題に関する数え切れないほどのトピックを見てきましたが、それらすべてに目を通しましたが、まだこれを機能させることができないようです.

4

2 に答える 2

1

これはすべて、ASP.NETの一連のイベントによるものだと思います。

DataBindコードをプロシージャに入れてみてください。Page_Initそうすれば、ラジオボタンの状態がプロシージャに到達するまでに設定されPage_Loadます。

于 2012-07-14T10:35:11.093 に答える
1

ラジオボタンを追加OnCheckedChanged="RadioButton1_OnCheckedChanged" AutoPostBack="true" してみてください。これにより、ボタンをクリックするとポストバックがトリガーされ、チェックされたものを見つけることができます

于 2012-07-14T10:27:12.050 に答える