2016-04-26 68 views
3

是否可以设置一个asp按钮,以便当它被单击时,客户端JavaScript将运行,然后服务器端c#方法将运行,但只有在事先javascript已经完成?客户提交表单的目标是,第三方jscript完成它的工作并发送表单数据。完成后,服务器端方法将运行,创建所需的文件,然后将其发回,以便客户端可以下载它。我将这两者分开工作,但试图将它们放在一起就成了问题。客户端Javascript方法后运行服务器方法

做一些谷歌福和S.O.搜索导致我认为,也许选项将OnClientClickOnServerClick附加到相同的asp:button?还是有不同的方式?

回答

3

您只需要提供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" /> 
+0

所以我跑了这样的东西,并用3秒的setTimeout()测试了true。必须与不同的浏览器线程有关吗?在setTimeout中获得警报之前下载的文件。尽管如此,虚假回报确实会阻止服务器创建任何内容。 – thefromanguard

相关问题