Sunday, May 12, 2024
Homepage · c#
 Popular · Latest · Hot · Upcoming
139
rated 0 times [  146] [ 7]  / answers: 1 / hits: 26637  / 13 Years ago, sat, january 7, 2012, 12:00:00

I have a submit button on a page.



<asp:Button ID=btnSubmit runat=server Text=Save Test OnClick=btnSubmit_Click
OnClientClick=return ValidateSaveTest(this); />


On Javascript, ValidateSaveTest function is called which validates all the fields.



function ValidateSaveTest(Sender) {

//do some validation, if fails return false from here. else move forward

var parameters = {};
parameters[parametersName] = $(# + hidTestId).val();

var succeededAjaxFn = function(result) {
if (result== true) {
var isNewVersion = confirm(Confirmation message);
if(isNewVersion)
{
//Raise server side button click event. Dont call click side event anymore.
$(# + <%=btnSubmit.ClientID %>).click();
}
return false;
}

}
var failedAjaxFn = function(result) { return false; }

//jquery ajax call
CallWebMethod(../Service.asmx, IsTestUsed, parameters, succeededAjaxFn, failedAjaxFn);

//async call, always return false hence no postback from here.
//Need waiting unless ajax response is obtained.
return false;
}


I need to raise server side button click event from javascript once ajax response is received.


More From » c#

 Answers
35

You can get the required JavaScript code from the ClientScriptManager's GetPostBackEventReference method:




Returns a string that can be used in a client event to cause postback
to the server.




This is normally used for writing the onclick attributes on controls like the <asp:linkButton>, but you can use it in your jQuery callback as well:



var succeededAjaxFn = function(result) {
//Raise server side button click event. Dont call click side event anymore.
<%= Page.ClientScript.GetPostBackEventReference(btnSubmit, String.Empty) %>;
}


The <%= %> block above will write out the following JavaScript for you:



__doPostBack('btnSubmit','')


Which in turn will post back the form to the server in such a way that ASP.NET thinks the button was clicked, and so the server-side btnSubmit_Click is triggered.



Notice that using this method, you can pass in a C# reference to the actual control. You don't need to worry about its client ID, or the correct name and arguments of the __doPostback() JavaScript function. All that is taken care of by the ClientScriptManager when you call this method.


[#88175] Thursday, January 5, 2012, 13 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
kylanalis

Total Points: 438
Total Questions: 85
Total Answers: 102

Location: Barbados
Member since Sun, Nov 27, 2022
1 Year ago
kylanalis questions
Sat, Oct 2, 21, 00:00, 3 Years ago
Tue, Oct 13, 20, 00:00, 4 Years ago
Thu, Feb 13, 20, 00:00, 4 Years ago
Tue, Jan 7, 20, 00:00, 4 Years ago
;