选中复选框时,以下代码仅在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。
答案 0 :(得分:0)
尝试将其属性processOnServer
设置为true
将监视添加到检查的已清除属性的已检查属性中。
答案 1 :(得分:0)
您可以使用
AutoPostBack="True"
在CheckBox上。这将导致对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)