2012-11-09 24 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上工作......荣誉!! –

相关问题