【问题标题】:Checkbox changed event does not call event after return true from clientside从客户端返回true后复选框更改事件不调用事件
【发布时间】:2015-05-15 17:26:47
【问题描述】:

我有一个复选框和功能

<asp:CheckBox ID="ckbtest" runat="server" CssClass="Label" Text="Responsible Persons"
     AutoPostBack="true" OnClick="return foo()" />


function foo(){
                if (false) {
                  alert('some alert.');
                  return false;
                  }
                  else{
                  return true;
                  }
                }

当我点击复选框并从函数返回 true 但之后它不会进入服务器端

我想在函数返回 true 后去服务器端

服务器端方法

Protected Sub ckbtest_CheckedChanged(ByVal sender As Object, ByVal e As System.EventArgs) Handles ckbtest.CheckedChanged

        Try
     some code
        Catch ex As Exception

        End Try

    End Sub

【问题讨论】:

    标签: javascript vb.net checkbox


    【解决方案1】:

    假设 foo() 是一个 java 脚本函数。您的代码需要是

    <asp:CheckBox ID="ckbtest" runat="server" CssClass="Label" Text="Responsible Persons" OnClientClick="return foo()" />
    

    OnClick 属性仅触发服务器端功能,AutoPostBack 属性也会自动初始化回发到服务器的帖子。

    【讨论】:

    • 如果我放 OnClientClick 那么它不会执行我的 javascript 函数 foo(),它会直接转到我在服务器端定义的复选框的 checkedchanged 事件
    • 你想让这两个函数都被解雇吗?删除 AutoPostBack 怎么样。您能否更清楚地了解您要实现的目标。
    • 如果我的 javascript 函数返回 true,我想触发服务器端函数。或者你也可以说如果我的 javascript 函数进入了 else 部分
    • 您是否仅在选中复选框时才尝试触发服务器端事件。如果是这种情况if (false) 非常错误,它将始终执行 else 部分并返回 true。
    • 是的,所以在其他部分执行之后,我想调用服务器端函数
    【解决方案2】:

    我只是在 javascript 中执行该代码来调用复选框的 checkedchange 事件。 这对我来说是可行的解决方案。

    __doPostBack('<%= ckbtest.ClientID %>', '');
    

    否则可以使用按钮单击或从 j-query 调用任何服务器端函数

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2023-03-20
      • 1970-01-01
      • 2012-09-13
      • 2021-12-19
      • 1970-01-01
      • 2011-08-30
      • 2012-06-26
      相关资源
      最近更新 更多