我試圖找出如何實現以下目標:ASP.NET AJAX - 的ScriptManagerProxy和處理HTML按鈕點擊
-
按鈕
- 處理客戶端的單擊事件 - 防止回發,如果javascript調用的結果爲假(例如
onclick="js:return IsThisAllowed()"
) - Javascript方法將返回真或假,這取決於使用的ScriptManagerProxy 調用生成web服務方法的結果
下面的代碼被簡化至我指至i主要部件這個問題。我可以alert()返回值沒有問題,但是我遇到問題的部分是如何將Web服務方法調用的結果返回給按鈕onclick處理程序?由於函數Finish()在我假設爲XmlHttp.send()調用成功時在單獨的線程中調用,因此如何將響應的值作爲javascript方法的返回值發送?我是否全部錯了?
我已經使用類似的代碼多次用返回值更新DOM,比如在<div>
之內,但從來不必擔心捕獲返回值並在腳本中使用它。
我到目前爲止有:
.NET Web服務方法(VB.NET):爲頁面生成AJAX的Web服務方法
<WebMethod()> _
<ScriptMethod()> _
Public Function IsAllowed() As Boolean
Return True
End Function
.NET代碼和HTML按鈕
<asp:ScriptManagerProxy ID="ScriptManagerProxy1" runat="server">
<Services>
<asp:ServiceReference Path="~/WebServices/MyWebService.asmx" />
</Services>
</asp:ScriptManagerProxy>
<asp:Button ID="_btn" runat="server" OnClientClick="js:return IsAllowed();" />
的Javascript
是的,這是我的經驗,但你有什麼建議來完成我想要做的? – Keith 2010-11-09 21:34:55
我想我想出了你要完成的任務 - 取消ASP。NET回發基於Web服務調用的結果。我正在用解決方案更新我的答案。 – 2010-11-09 21:35:53
準確地說 - 我已經有click事件中的邏輯來阻止處理(並拋出錯誤),如果不允許調用,但我寧願沒有完整的回發開銷,如果我能完成這個Ajax-樣式。 – Keith 2010-11-09 21:38:38