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

Running Server Method after Client Javascript Method

是否可以设置一个 asp 按钮,以便在单击它时,客户端 javascript 将 运行,然后服务器端 c# 方法将 运行,但仅在先前的 javascript 完成之后?目标是当客户提交表单时,第 3 方 jscript 执行其操作并发送表单数据。完成后,服务器端方法将 运行 创建它需要的文件,然后 post 返回,以便客户端可以下载它。我让这两个单独工作,但试图将它们放在一起一直是个问题。

做一些 google-fu 和 S.O。搜索让我想到,也许选项是将 OnClientClickOnServerClick 附加到同一个 asp:button?或者有什么不同的方法吗?

您只需要为 OnClientClick 提供 javascript 方法。它将在回发发生之前执行。您甚至可以通过返回 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" />