2012-11-09 23 views
2

我有這樣的控制:ASP.NET:如何使onClientClick在回發之前完成工作?

<asp:Button ID="save_all_filt" runat="server" Text="All data for filtered subjects" 
     OnClientClick=" a= saveAllFilt(); return true; " onclick="save_all_filt_Click" /> 

saveAllFilt包含JQuery的AJAX調用。所以我在日誌中看到,我同時開始回發和saveAllFilt。在Ajax調用saveAllFilt fninshes之前,回發「延遲」並且什麼都不做。

我不知道有沒有辦法這樣做: 1. onClientClick,系統進入saveAllFilt JS函數,並以某種方式等待(!),直到Ajax函數以這種或那種方式完成。 2.只有完成後,纔會發生真正的回傳。

我的確認識到jQuery ajax調用是事件驅動和異步的。只是想,直到它完成就可以阻止這些回發操作(AJAX調用進行檢索是通過服務器回發情況準備數據。)

+0

是有原因你的代碼隱藏不能做ajax調用正在做什麼?一次去服務器而不是兩次會更好。 – jbabey

回答

4

設置的jQuery AJAX配置對象的async propertyfalse

$.ajax({ 
    /* ... */ 
    async : false 
    /* ... */ 
}) 
+1

這是我的解決方案,3個小時頭撞擊問題...我的OnClientClick javascript ajax調用沒有在Firefox上工作,但在Chrome上工作......榮譽!! –

相關問題