取消选中复选框不会触发选中已更改
本文关键字:复选框 取消 | 更新日期: 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)