复选框CheckedChanged事件无需自动回发

3
复选框的CheckedChanged事件在自动回发时触发。有没有办法在自动回发设置为false的情况下触发该事件?
3个回答

1
如果你想在不告诉用户已经往返服务器的情况下触发事件,你可以通过ajax来触发事件。
<asp:ScriptManager ID="ScriptManager2" runat="server">
</asp:ScriptManager>
<asp:UpdatePanel ID="UpdatePanel1" runat="server">
    <ContentTemplate>
        <asp:CheckBox runat="server" ID="cb" oncheckedchanged="cb_CheckedChanged">
        </asp:CheckBox>
    </ContentTemplate>
</asp:UpdatePanel>

0

通过手动回发。
说真的,没有回发怎么可能触发事件呢?


我认为OP的意思是,如果值发生了变化,它应该在页面最终发布时触发。 - Klaus Byskov Pedersen
不,不是最终发布。当用户选中和取消选中复选框时,它应该触发。我需要添加JavaScript来实现这一点。 - user279521
这个问题有误导性。在标记为asp.net的问题中提到CheckedChanged事件,让我直接想到了服务器端。无论如何,祝你好运 :) - Dercsár

0

你不能。

OnCheckedChanged 是 ASP.NET 中 CheckBok 对象(控件)的一个属性。

为了触发 JavaScript 代码,你需要使用 OnClick="checkboxchanged(this);" 并手动检查值 checked 是否被更改:

<asp:CheckBox runat="server" ID="cb" onclick="checkboxchanged(this);" />

function checkboxchanged( sender ) {
    if ( sender.checked ) {
        // clicked and checked
    } else {
        // clicked and unchecked
    }
}

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接