Kailas
Kailas

Reputation: 449

How can i call a server side button click function from client side?

I have a server side function

protected void SearchButton_Click(object sender, EventArgs e)       
{

}

I need to call the same from a client side script

function calSearch()
{
    // here I need to call the client side script
}

Upvotes: 5

Views: 32003

Answers (3)

juhi
juhi

Reputation: 330

you can use __doPostBack method

function functionName()
{

__doPostBack('ButtonId','OnClick');

}

or you can try this....

<button id="btnsave" onclick="callfunction()">Save</button>// to all javascript
<asp:Button ID="btnSave" runat="server" OnClick="btnSave_Click" style="display:none" />


<script type="text/javascript">
     function callfunction()
     {  
         /*do your javascript coding here*/
        document.getElementById('<%= btnSave.ClientID %>').click();
       // we are firing onClick event for  asp button btnsave form javascript.
     }
</script>

otherwise you can create WebMethod in code behind and make AJAX call but then you wont be able to access asp control in WebMethod.

   $.ajax({
            type: "POST",
            url: "AspDotNetPage{}'{"+myData+"}',
            contentType: "application/json; charset=utf-8",
            dataType: "json",
            success: function(msg) {
               alert(msg);                
            }
          });

Upvotes: 2

Mudassir Hasan
Mudassir Hasan

Reputation: 28771

Assuming Id of your button is SearchButton , you can do this

function calSearch(){

__doPostBack('SearchButton','');

}

Note: There are two underscores before doPostBack() function

A better way to do this here

Upvotes: 0

highwingers
highwingers

Reputation: 1669

You cant do this, your option is to simulate Click of a button using javascript.

<asp:Button ID="savebtn" runat="server" OnClick="savebtn_Click" style="display:none" />

HTML markup will look like this:

<button id="btnsave" onclick="fncsave()">Save</button>

now simulate a Click using JS

<script type="text/javascript">
     function fncsave()
     {
        document.getElementById('<%= savebtn.ClientID %>').click();
     }
</script>

Other solution would be to use ajax.

Upvotes: 9

Related Questions