JSでループがあり、そのループの各パラメータをコードビハインド内のASP.NETの関数に渡したいとします。そのようなJSパラメータでASP.NETサーバーサイドタグを渡す方法
何か:
for (var i = 0; i < elements.length; i++)
{
}
そして、私は< %%>要素[i]の中の関数を渡したいです。
どうすればいいですか?
ありがとうございました!
JSでループがあり、そのループの各パラメータをコードビハインド内のASP.NETの関数に渡したいとします。そのようなJSパラメータでASP.NETサーバーサイドタグを渡す方法
何か:
for (var i = 0; i < elements.length; i++)
{
}
そして、私は< %%>要素[i]の中の関数を渡したいです。
どうすればいいですか?
ありがとうございました!
これは簡単ではありません。唯一の方法は投稿を作成して変数を送信することです。
私は正常に行うことは、私は素敵なきれいな効果を得る私のために仕事をするハンドラを持つことであると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
変数に渡され、より豊かな環境でユーザーとやり取りすることができます。
あなたがクライアントからサーバ側のメソッドを呼び出すしたい意味ならば、もっと簡単な方法があり、ページベースの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());
}
|おかげさま...私は何を考えていたのですか – Himberjack