2010-12-12 14 views
0

JSでループがあり、そのループの各パラメータをコードビハインド内のASP.NETの関数に渡したいとします。そのようなJSパラメータでASP.NETサーバーサイドタグを渡す方法

何か:

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

    } 

そして、私は< %%>要素[i]の中の関数を渡したいです。

どうすればいいですか?

ありがとうございました!

答えて

2

これは簡単ではありません。唯一の方法は投稿を作成して変数を送信することです。

私は正常に行うことは、私は素敵なきれいな効果を得る私のために仕事をするハンドラを持つことであるとjQueryを使用して...

あなたの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); 
}); 

から

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

0

あなたがクライアントからサーバ側のメソッドを呼び出すしたい意味ならば、もっと簡単な方法があり、ページベースのWebサービスを使用して次のようにあなたのコードで

は、背後にあるメソッドを追加します。

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

あなたが使用することができ、あなたのクライアントコードに続いすなわち

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

、ページのスクリプトマネージャで真EnablePageMethodsを=使用する必要がある。

PageMethods.MyMethod (s, MyMethodSuccess, MyMethodFail); 

function MyMethodSuccess() { } 

function MyMethodFail(error) { 
    alert(error.get_message()); 
} 
関連する問題