取消选中复选框不会触发选中已更改

本文关键字:复选框 取消 | 更新日期: 2023-09-27 18:33:51

以下

代码仅在选中该复选框时在 c# 中触发。再次取消选中时不会。为什么?

<dx:ASPxCheckBox ID="cbEmail" ClientInstanceName ="cbEmailI" runat="server" CheckState="Unchecked" Text="Hello"  OnCheckedChanged ="onCheckChangedCBEmail" AutoPostBack="true" Width="181px"> 
     <ClientSideEvents ValueChanged="OnValueChangedEmail"  Init="OnValueChangedEmail" /></dx:ASPxCheckBox> 

C#:

 protected void onCheckChangedCBEmail(object sender, EventArgs e)
    { 
        bool isEmailChecked = cbEmail.Checked;
    }

选中该复选框时,isEmailChecked确实设置为 true,但是一旦取消选中,它就不会设置为 false。调试时,取消选中复选框时甚至不会调用onCheckChangedCBEmail(s,e)

正在使用 DevExpress。

取消选中复选框不会触发选中已更改

尝试将其属性设置为processOnServer true

更新

将监视添加到检查的选中属性中,以清除监视。

您可以使用

AutoPostBack="True"

这将导致对 Page_Load() 的新调用;

或者你可以使用这样的回调面板。

     <dx:ASPxCallbackPanel runat="server" ID="CallBackPanel" lientInstanceName="CallBackPanel">
                <PanelCollection>
                    <dx:PanelContent ID="PanelContent" runat="server">
                                    <dx:ASPxCheckBox ID="checkboxid" runat="server" Text="Some Text"                                     OnValueChanged="CheckedChanged" AutoPostBack="False" >
                                        <ClientSideEvents CheckedChanged="function(s,e){CallBackPanel.PerformCallback();}"/>
</dx:ASPxCheckBox>
                    </dx:PanelContent>
                </PanelCollection>
            </dx:ASPxCallbackPanel>

和服务器端:

 protected void CheckedChanged(object source, EventArgs e)