编程语言
首页 > 编程语言> > javascript – 从java脚本调用asp.net中的服务器端事件

javascript – 从java脚本调用asp.net中的服务器端事件

作者:互联网

肯定会被标记为重复的,但经过大量的问题和例子,我无法解决我的问题.
我想要的是?
从客户端java脚本调用asp.net中的服务器端事件处理程序它不在服务器端.我通过设置断点检查它,页面轻弹但没有调用服务器端方法.
关于代码背后的点击事件是

  protected void btninsert_Click(object sender, EventArgs e)
  {
      // my code
  }

aspx文件

   <asp:Button ID="btninsert" runat="server" ValidationGroup="form" CssClass="btn"
      OnClientClick="DoPost()" Text="Save" />

Javascript方法是

   function DoPost() {
        function DoPost() {
        var chk = document.getElementById('<%= chkstatus.ClientID %>');
        if (chk.checked)
            __doPostBack('<%= btninsert.ClientID %>', 'OnClick');
        return true;
        //return false;
    } 
    } 

我也尝试过这个
        __doPostBack(‘btninsert’,’OnClick’);和__doPostBack(‘btninsert’,”);和$(‘btnSubmit’).触发器(‘click’);没有成功.

我究竟做错了什么?

编辑:如果我使用OnClick事件,那么它将进入服务器端事件,而不管DoPost方法中的if条件.

解决方法:

啊,这很简单.感谢所有答案.
解:
对服务器端事件使用OnClick属性,对客户端事件使用OnClientclick进行验证.
OnClientClick javascript方法将返回true和false,它决定了serveride onclick事件是否会触发.
代码将是这样的

  <script type="text/javascript">
    function DoPost() {
        var chk = document.getElementById('<%= chkstatus.ClientID %>');
        if (chk.checked) {
            var c = confirm("are you sure?");
            if (c == true) {
                return true;
            } else
            { return false; }
        }
        return true;
    } 
</script>

和Button标签

<asp:Button ID="btninsert" runat="server" ValidationGroup="form" CssClass="btn"
   OnClientClick="return DoPost();" OnClick="btninsert_Click" Text="Save" />

标签:javascript,asp-net,postback
来源: https://codeday.me/bug/20191002/1842028.html