2011-08-21 34 views
3

它可能似乎是常見問題。但我心中有些東西,讓我解釋一下。 我搜索的測試多路就是做這件事,並在年底,我發現這些soultion:如何在沒有頁面重新加載的情況下調用頁面方法?

  1. Jquery With Ajax
  2. Webform_Docallback
  3. 腳本管理和UpdatePanel的

所以我需要的是一樣的東西第一種解決方案,但也想訪問this對象,甚至page controls。原因不使用第二和第三種解決方案是他們撥打Page-Reload first and then call that method。所以這就是我需要的!

有沒有解決方法?有小費嗎?

Additional Info :
我需要的東西,如:打電話的方法通過button_click,進入到服務器端。在服務器端調用Wcf-Service,並最終做一些事情。 (如綁定網格數據源,更改文本框值等)。

差不多jQuery with Ajax是我所需要的。但我有這樣的問題!

  1. 沒有訪問該對象
  2. 沒有訪問頁面,控制

所以,如何解決這些問題的?

+0

我用jQuery走在這條一。Phil Haack最近向MVC發佈了這個甜蜜的插件,用於從JS調用操作方法:http://haacked.com/archive/2011/08/18/calling-asp-net-mvc-action-methods-from-javascript.aspx? utm_source = feedburner&utm_medium = feed&utm_campaign = Feed%3A + haacked +%28you%27ve + been + HAACKED%29 –

+0

抱歉,我沒有使用Mvc! – Rev

回答

2

您可以通過檢查ScriptManager.IsInAsyncPostBack財產與ScriptManagerUpdatePanel繞過你有你的Page_Load方法中的任何邏輯。

+0

謝謝,任何例子! – Rev

+0

請參閱http://aspdotnetfaq.com/Faq/how-to-determine-whether-an-asynchronous-partial-postback-has-occurred-on-page.aspx –

3

對於第一個

創建在的.cs一個WebMethod文件

[WebMethod] 
public static string Foo() 
{ 
    //...... 
} 

如果你想使用會話,你應該

[WebMethod(EnableSession = true)] or [WebMethod(true)] 
public static string Foo() 
{ 
    //...... 
} 

然後,通過JS

調用webmothod
$.ajax({ 
type: "POST", 
contentType: "application/json", 
url: "WebForm1.aspx/Foo", 
data: "{}", 
dataType: "json", 
success: function(){.......} 
}); 

希望它有用......

3
 [WebMethod()] 
     [System.Web.Script.Services.ScriptMethod()] 
     public static void YourTaskNAme(Your Parameter) 
     { 
      // Yuor Code here 
     } 

更新腳本管理器具有以下屬性EnablePageMethods="true"

最後使用JavaScript調用此方法

PageMethods.YourTaskNAme(Your Parameter, OnMethodFinished); 

function OnMethodFinished() { 
alert('Call to function worked.') 
     } 
相關問題