Llamando al evento del lado del servidor en asp.net desde el script java

Seguramente se marcará como duplicado, pero después de toneladas de preguntas y ejemplos no pude resolver mi problema.
¿Lo que quiero?
Al llamar al controlador de eventos del lado del servidor en asp.net desde el script java del lado del cliente, no va al lado del servidor. Lo verifiqué configurando el punto de interrupción, las películas de la página pero el método del lado del servidor no se llama.
Mi evento de clic en el código detrás es

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

archivo aspx

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

Método de Javascript es

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

También probé esto__doPostBack('btninsert', 'OnClick'); y__doPostBack('btninsert', ''); y$('btnSubmit').trigger('click'); sin éxito

¿Qué estoy haciendo mal?

Editar: Si yo usoOnClick evento entonces va en el evento del lado del servidor, independientemente de laif condition en elDoPost método.

Respuestas a la pregunta(6)

Su respuesta a la pregunta