0

リスト ビューの項目テンプレート内にラジオ ボタンがあります。グループ名属性をいじるリスト ビューに問題があり、これを克服するためにカスタム ラジオ ボタンを使用しました (http://www.codeproject.com/Articles/7960/How-to-group-RadioButtons)。

ラジオ ボタンをクリックすると、イベントが正しく発生します。その後ラジオ ボタンをクリックすると、イベントはまだ 1 回しか発生しませんが、2 回発生するはずです。

ソースを見たところ、各コントロールにポストバック イベントが割り当てられているようです。

<tr>
                                    <td class="name">
                                        <span id="cph1_lvOptions_lvGuideSpecOptionGroupOptions_21_lblOptionName_0">None</span>


                                    </td>
                                    <td class="available">

                                    </td>
                                    <td class="available">
                                        <input id="cph1_lvOptions_lvGuideSpecOptionGroupOptions_21_rbOption_0" type="radio" value="ctl00$cph1$lvOptions$ctrl21$lvGuideSpecOptionGroupOptions$ctrl0$rbOption" onclick="javascript:setTimeout(&#39;__doPostBack(\&#39;ctl00$cph1$lvOptions$ctrl21$lvGuideSpecOptionGroupOptions$ctrl0$rbOption\&#39;,\&#39;\&#39;)&#39;, 0)" name="Paralleling Switchgear" />
                                    </td>
                                </tr>

                                <tr>
                                    <td class="name">
                                        <span id="cph1_lvOptions_lvGuideSpecOptionGroupOptions_21_lblOptionName_1">EGP UL 891</span>


                                    </td>
                                    <td class="available">

                                    </td>
                                    <td class="available">
                                        <input id="cph1_lvOptions_lvGuideSpecOptionGroupOptions_21_rbOption_1" type="radio" value="ctl00$cph1$lvOptions$ctrl21$lvGuideSpecOptionGroupOptions$ctrl1$rbOption" onclick="javascript:setTimeout(&#39;__doPostBack(\&#39;ctl00$cph1$lvOptions$ctrl21$lvGuideSpecOptionGroupOptions$ctrl1$rbOption\&#39;,\&#39;\&#39;)&#39;, 0)" name="Paralleling Switchgear" />
                                    </td>
                                </tr>

これを引き起こしている可能性のあるものについてのアイデアはありますか? 明らかな何かが欠けていますか?

4

1 に答える 1

0

生成された JavaScript を見ると、onclick イベントでポストバックが発生していることがわかります。onclick イベントは、フォーカスを失っているボタンではなく、実際にクリックしているラジオ ボタンに対してのみ発生します。

本当に、これはあなたが望む動作だと思います。そうしないと、ラジオ ボタンのオプションが変更されるたびにサーバーへの往復が 2 回必要になり、ページがひどく応答しなくなります。イベント ハンドラーでは、2 番目のポストバックに依存するのではなく、新しくチェックされたラジオ ボタンが何であるかを確認するだけです。

于 2012-08-31T14:39:27.663 に答える