【问题标题】:Uncheck on Checkbox won't fire OnCheckedChanged取消选中复选框不会触发 OnCheckedChanged
【发布时间】:2013-10-10 10:07: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。

【问题讨论】:

  • 这似乎是第三方控件。你用的是什么控件?
  • 我编辑了这个问题。抱歉,它是 DevExpress。
  • 我会检查以确保您没有在阻止回发的地方启动验证。
  • @JamesJohnson 我为 Page_load 添加了一个断点,似乎在取消选中时它确实再次点击了 Page_load。这是否意味着正在发生回发?
  • @Jaiesh_bhai:是的,如果您在切换复选框后点击了Page_Load 事件,则回发正在发生。在这种情况下,我会确保您不会在代码中的某处重置选中状态。

标签: c# asp.net checkbox devexpress


【解决方案1】:

尝试将其属性processOnServer 设置为true

更新

将 watch 添加到 check 的 checked 属性中,并在其中清除它。

【讨论】:

  • 感谢您的回复,但这并没有解决问题。
【解决方案2】:

你可以使用

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)

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-04-13
    • 2010-09-27
    • 2019-04-13
    • 1970-01-01
    • 1970-01-01
    • 2023-03-12
    • 1970-01-01
    • 2015-01-15
    相关资源
    最近更新 更多