2010-12-12 68 views
0

我在JS中有一個循環,我想將該循環中的每個參數傳遞給ASP.NET中的代碼隱藏函數。如何通過JS參數傳遞ASP.NET服務器端標記

類似的東西:

for (var i = 0; i < elements.length; i++) 
    {      

    } 

而且我想通過一個函數在< %%>的元素[I]。

我該怎麼做?

謝謝!

回答

2

這不是那麼容易,唯一的辦法是做一個帖子併發送變量。

我通常做的是在你的處理器

從你的JavaScript代碼

var r = ''; 
for (var i = 0; i < elements.length; i++) 
    r += elements[i] + ','; 

// send this asynchronously to the handler 
$.get("myHandler.asmx", { values: r }, function(data) { 
    // it finished processing, let use the passed data 
    alert(data); 
}); 

有一個處理器來爲我和使用jQuery我得到一個不錯的漂亮效果做的工作......

public void ProcessRequest(HttpContext context) 
{ 
    string r = context.Request["values"]; 

    // process them 

    context.Response.ContentType = "text/plain"; 
    context.Response.Write("OK"); 
} 

將「OK」傳遞給data變量,並且您可以將用戶與更加豐富的環境進行交互。

+0

|謝謝...那就是我想的 – Himberjack 2010-12-12 08:52:01

0

如果你的意思是你想從客戶端調用服務器端的方法則有一個更簡單的方法,使用基於頁面的Web服務:

在後面的代碼中添加方法如下:

[WebMethod] 
public static void MyMethod (string s) 
{ 
} 

有必要使用的EnablePageMethods = true在頁面的腳本管理器,即

<asp:ScriptManager runat="server" ID="ScriptManager1" EnablePageMethods="true"> 

然後在你的客戶端代碼,您可以使用:

PageMethods.MyMethod (s, MyMethodSuccess, MyMethodFail); 

function MyMethodSuccess() { } 

function MyMethodFail(error) { 
    alert(error.get_message()); 
} 
相關問題