Sha*_*pta 6 javascript c# asp.net jquery
我在页面上有一个提交按钮.
<asp:Button ID="btnSubmit" runat="server" Text="Save Test" OnClick="btnSubmit_Click"
OnClientClick="return ValidateSaveTest(this);" />
Run Code Online (Sandbox Code Playgroud)
在Javascript上,调用ValidateSaveTest函数来验证所有字段.
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;
}
Run Code Online (Sandbox Code Playgroud)
一旦收到ajax响应,我需要从javascript引发服务器端按钮单击事件.
Mic*_*out 14
您可以从ClientScriptManager的GetPostBackEventReference方法获取所需的JavaScript代码:
返回可在客户端事件中使用的字符串,以便回发到服务器.
这通常用于在控件上编写onclick属性<asp:linkButton>,但是您也可以在jQuery回调中使用它:
var succeededAjaxFn = function(result) {
//Raise server side button click event. Dont call click side event anymore.
<%= Page.ClientScript.GetPostBackEventReference(btnSubmit, String.Empty) %>;
}
Run Code Online (Sandbox Code Playgroud)
<%= %>上面的块将为您写出以下JavaScript:
__doPostBack('btnSubmit','')
Run Code Online (Sandbox Code Playgroud)
反过来,它会以一种ASP.NET认为单击按钮的方式将表单发回服务器,从而btnSubmit_Click触发服务器端.
请注意,使用此方法,您可以将C#引用传递给实际控件.您无需担心其客户端ID或__doPostback()JavaScript函数的正确名称和参数.ClientScriptManager当你调用这个方法时,所有这一切都由你来处理.
| 归档时间: |
|
| 查看次数: |
25132 次 |
| 最近记录: |