未选中的RadioButtonList不会触发SelectedIndexChanged

时间:2011-04-04 18:23:32

标签: asp.net radiobuttonlist

我有一个带有一些固定元素和默认选择的RadioButtonList。如果我使用javascript取消选中选项,则在回发时不会触发SelectedIndexChanged事件。

我希望调用SelectedIndexChanged是因为索引更改为-1。

这是Asp.Net代码

<asp:RadioButtonList ClientIDMode="Static" ID="RadioButtonList1" runat="server" 
    onselectedindexchanged="RadioButtonList1_SelectedIndexChanged">
    <asp:ListItem Value="1" Selected="True"></asp:ListItem>
    <asp:ListItem Value="2"></asp:ListItem>
</asp:RadioButtonList>

和jquery代码

$('#RadioButtonList1 :radio:visible').attr('checked', false);

据我所知,表单提交的数据收集阶段由 IPostBackDataHandler.LoadPostData 方法处理。

我从RadioButtonList派生了一个类,以验证何时调用LoadPostData,并且我注意到当选择非单选按钮时,不会调用该方法,并且对于SelectedIndexChanged事件也是如此。

似乎如果PageRequest.Form.Keys数组中没有RadioButtonList的键,则不会调用LoadPostData。

任何帮助表示感谢。

1 个答案:

答案 0 :(得分:0)

尝试设置AutoPostBack="true"

示例:

<asp:RadioButtonList ClientIDMode="Static" ID="RadioButtonList1" runat="server" 
    onselectedindexchanged="RadioButtonList1_SelectedIndexChanged" AutoPostBack="true">
    <asp:ListItem Value="1" Selected="True"></asp:ListItem>
    <asp:ListItem Value="2"></asp:ListItem>
</asp:RadioButtonList>

根据MSDN的文档:

  

获取或设置一个指示的值   是否回发到服务器   当用户自动发生   更改列表选择。 (遗传   来自ListControl。)