单选按钮OnCheckedChanged不会两次射击

时间:2012-08-31 14:31:44

标签: c# asp.net radio-button

列表视图的项目模板中有一个单选按钮。我在列表视图中遇到了一些问题,弄乱了组名属性,并使用自定义单选按钮来克服这个问题(http://www.codeproject.com/Articles/7960/How-to-group-RadioButtons).

单击单选按钮时,事件会正常触发。当我在之后单击一个单选按钮时,该事件仍然只触发一次,但它应该触发两次。

我查看了源代码,看起来每个控件都会分配回发事件。

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

关于可能导致这种情况的任何想法?我错过了一些明显的东西吗?

1 个答案:

答案 0 :(得分:0)

如果您查看生成的javascript,您会看到回复发生在onclick事件中。 onclick事件仅针对您实际点击的单选按钮触发,而不是失去焦点的按钮。

真的,我认为这是你想要的行为。否则,每次更改单选按钮选项时,您必须两次往返服务器,这会使您的页面痛苦地无响应。在您的事件处理程序中,只需检查新选中的单选按钮是什么,而不是依赖于第二次回发。