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

sye*_*sin 0 javascript asp.net postback

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

  protected void btninsert_Click(object sender, EventArgs e)
  {
      // my code
  }
Run Code Online (Sandbox Code Playgroud)

aspx文件

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

Javascript方法是

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

我也试过这 __doPostBack('btninsert', 'OnClick');__doPostBack('btninsert', '');$('btnSubmit').trigger('click');没有成功.

我究竟做错了什么?

编辑:如果我使用OnClick的事件则在服务器端事件不论去if conditionDoPost方法.

sye*_*sin 7

啊,这很简单.感谢所有答案.
解决方案:
使用OnClick属性进行服务器端事件,OnClientclick使用客户端事件进行验证. OnClientClickjavascript方法将返回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>
Run Code Online (Sandbox Code Playgroud)

和Button标签

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