asp.net trigger button click on server side from postback manually

1.6k Views Asked by At

I have an asp.net page. & I am using jquery confirm plug in from here. https://craftpip.github.io/jquery-confirm/

I want that when user clicks a button, they are prompted for a confirm dialog & when they say confirm,only then my button click on server should get fired. I do not want to use the window.confirm dialog.

I was able to use jquery confirm & called postback manually via Button's ClientClick property.

The __doPostBack event is firing. However, the click event on server side for the button is not getting fired.

What am i missing ?

ASPX Code :

 <%@ Page Language="C#" AutoEventWireup="true" CodeBehind="Tester.aspx.cs" Inherits="BLF_Gauri.Tester" %>

<html>
<head>
    <script src="Scripts/jquery-2.1.0.min.js"></script>
    <link rel="stylesheet" href="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.2.3/jquery-confirm.min.css">
    <script src="https://cdnjs.cloudflare.com/ajax/libs/jquery-confirm/3.2.3/jquery-confirm.min.js"></script>

</head>
<body>
    <form runat="server">
        <asp:Button ID="Button2" runat="server" Text="YEs" OnClick="Button2_Click"  
OnClientClick="return TestClick(this);" />
    </form>

    <script type="text/javascript">

        function TestClick(x)
        {
            jQuery.confirm({
                title: 'Confirm!',
                content: 'Simple confirm!',
                buttons: {
                    confirm: function () {
                        __doPostBack("'" + x.id + "'", 'OnClick');
                    },
                    cancel: function () {
          //              Do Nothing
                    }
                }
            });
            return false;
        }
    </script>


</body>
</html>

The Code Behind : (Simplified)

protected void Page_Load(object sender, EventArgs e)
        {
           //IT COMES HERE.
        }

        protected void Button2_Click(object sender, EventArgs e)
        {
            //IT DOES NOT COME HERE.
        }
1

There are 1 best solutions below

0
On

So I solved this!! Instead of using __dopostback I used this.

WebForm_DoPostBackWithOptions(
      new WebForm_PostBackOptions("" + x.name + "", "", true, "", "", false, true));

x.name coz inside a master page. id changes.