【问题标题】:CheckBox CheckedChanged Event without autopostback没有自动回发的 CheckBox CheckedChanged 事件
【发布时间】:2015-12-04 19:29:09
【问题描述】:

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

【问题讨论】:

    标签: c# checkbox asp.net-3.5


    【解决方案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>
    

    【讨论】:

      【解决方案2】:

      通过手动回发。
      说真的,如果不回发,事件怎么会触发呢?

      【讨论】:

      • 我认为 OP 意味着它应该在页面最终发布时触发,如果值发生了变化。
      • 不,最终没有发布。它应该在用户选中和取消选中复选框时触发。我需要添加 javascript 来实现这一点。
      • 那么这个问题具有误导性。在标记为 asp.net 的问题中提及 CheckedChanged 事件将我直接带到服务器端。无论如何,祝你好运:)
      【解决方案3】:

      你不能。

      OnCheckedChanged 是 ASP.NET 中CheckBok object(控件)的属性。

      要触发 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
          }
      }
      

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 2021-04-21
        • 1970-01-01
        • 2010-12-19
        • 2011-03-28
        • 1970-01-01
        • 2020-05-28
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多