2011-01-25 74 views
1

我有我的代碼的Web方法背後:從後臺代碼的Web方法調用JavaScript方法

[System.Web.Services.WebMethod] 
public static string GetStateData(string state) 
{ 
    //this is where i want to call a javascript method "GetItems" 
} 

我有我取回一些價值JavaScript方法,我想用其中的一個在我的網頁的方法值

function GetItems() { 
     var variable1= $("#<%=Item1.ClientID %> input:checked"); 
     var variable2= $("#<%=Item2.ClientID %>").val(); 
     return [variable1.text(), variable2.val(), variable2];} 

我一直在尋找方法來調用Web方法每次在如何從JavaScript調用Web方法我的搜索結果中的JavaScript方法,但。

我發現這一點,但它是從一個Silverlight項目的代碼隱藏做到,當我試圖將它隱藏代碼正確的引用我是不存在

var result = HtmlPage.Window.Invoke("GetItems"); 

是否有參考我丟了?

感謝您的回覆

+0

你究竟想達到什麼目的? – Oded

回答

3

你不能那樣做。您通過AJAX調用webmethod。將小塊信息發送到服務器上的一個靜態方法,該方法對特定頁面對象一無所知(這不是靜態的)。

你想要做的是將這些值和數據在AJAX調用中發送到webmethod。您沒有進行完整的回發,因此您對頁面的當前狀態一無所知,除了您作爲參數傳遞給web方法外。

要麼首先發送信息,要麼返回某種標誌,當你想要的信息,並讓客戶端使用該信息使ajax回調到另一個函數,並讓它從那裏繼續。

0

而不是嘗試從webmethod調用javascript使用webmethod的返回值來決定調用哪個javascript函數。

據我所知,從webmethod調用javascript是不可能的 - 您需要了解服務器端和客戶端代碼之間的區別。