私は.net/c#を使ってWebアプリケーションを開発しています。私はそれがJavaScriptのを使用してクライアント側からmethhodと呼ぶユーザーコントロールを持っています。しかし、ページメソッドは親ページに置くと呼び出すことができますが、メソッドをユーザーコントロールコードファイルに入れるとできません。しかし、何らかの理由で私は親ページを制御することはできませんが、ユーザーコントロールを完全に制御できます。この限界を克服するには?これは、ユーザーコントロールにページメソッドを書き込むのに有効ですか?
は、私はこのようなJavaScriptを使用してpagemethodを呼び出す:
jQuery("[id$='tb_UserName']").blur(function() {
var login = jQuery("[id$='tb_UserName']").val();
PageMethods.SearchUserName(login, SearchUserNameCallback);
});
function SearchUserNameCallback(result) {
alert(result);
}
ページメソッドSearchUserNameは、次のように定義されます。
[WebMethod]
public static string SearchUserName(string name)
{
...
}
方法は問題がない、ただそれは場所が大きな違いを生むのです。私はそれをユーザーコントロールコードファイルに入れた場合、 "Pagemethods is undefined"というエラーが出ます。私は親コードファイルに入れて、それは正常に動作します。しかし、私は親ファイルを制御できません。私はテスト環境でしか実行できません。
ユーザーコントロールからWebサービスを呼び出すことは可能ですか? –
はい、どこからでも電話できます。特別なScriptManagerProxyコントロールがあります。このコントロールを使用すると、ページ・ハイディリーの上位コンポーネント(「ScriptManager on MasterPage」、ScriptManagerProxyページ/ユーザー・コントロール)からスクリプト・マネージャを「拡張」できます。 – Steven