2016-04-26 106 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

相關問題