在客户端 Javascript 方法之后运行服务器方法

Running Server Method after Client Javascript Method

本文关键字:方法 运行 服务器 之后 Javascript 客户端      更新时间:2023-09-26
是否可以

设置一个asp按钮,以便在单击它时,客户端javascript将运行,然后服务器端C#方法将运行,但仅在前面的javascript完成后运行?目标是当客户端提交表单时,第三方jscript会做它的事情并发送表单数据。完成此操作后,服务器端方法将运行,创建所需的文件,然后将其回发,以便客户端可以下载它。我让这两个分开工作,但试图将它们放在一起一直是问题所在。

做一些谷歌和 SO 搜索让我认为也许选择是将OnClientClickOnServerClick附加到同一个asp:button?还是有其他方法?

你只需要提供 javascript 方法即可OnClientClick 。它将在回发发生之前执行。您甚至可以通过返回false来阻止它:

function JsMethodName() {
    // do something...
    // return true; // postback
    // return false; // no postback
}
<asp:Button ID="ButtonID" 
    OnClientClick="return JsMethodName();" 
    OnClick="ServerMethod" runat="server" Text="ButtonText" />