【问题标题】:Uncheched RadioButtonList doesn't fire SelectedIndexChangedUncheched RadioButtonList 不会触发 SelectedIndexChanged
【发布时间】:2011-07-29 09:28:34
【问题描述】:

我有一个带有一些固定元素和默认选择的 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 事件也是如此。

似乎如果Page.Request.Form.Keys数组中不存在RadioButtonList的键,则不会调用LoadPostData。

任何帮助表示赞赏。

【问题讨论】:

    标签: asp.net radiobuttonlist


    【解决方案1】:

    尝试设置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。)

    【讨论】:

    • 好的,我试过了,结果还是一样。 Pheraps 问题不在于回发发生的方式,而在于它在服务器端的处理方式。
    • 您提出的解决方案的问题是,当使用javascript取消选择单选按钮时,不会发生回发。
    猜你喜欢
    • 2017-02-13
    • 1970-01-01
    • 1970-01-01
    • 2017-02-16
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多