2011-04-04 72 views
1

我有一个RadioButtonList与一些固定的元素和默认选中。如果我取消选中javascript,回发时SelectedIndexChanged事件不会被触发。Uncheched RadioButtonList不会触发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事件。

看来,如果RadioButtonList的关键字不存在于Page.Request.Form.Keys数组中,则不会调用LoadPostData。

任何帮助表示赞赏。

回答

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继承 )。

+0

好的,我试过了,但结果仍然是一样的。 Pheraps问题不是回发发生的方式,而是它在服务器端处理的方式。 – 2011-04-05 11:27:22

+0

您提出的解决方案的问题是,当使用JavaScript取消选择单选按钮时,回发不会发生。 – 2011-04-06 09:34:18

相关问题