非同期ポストバック中にに新しいServiceReferenceインスタンスを追加して、後でクライアント側のスクリプトを介して参照されたWebサービスを使用できるようにすることは可能ですか?ScriptManagerPage
の中にあるaの中でこれを実行しようとしているので、プログラムでUserControlScriptReferenceRepeaterを追加してPage_Loadもここでは機能しません。
編集2:これは私が私から呼び出したコードであり、UserControl私が期待することをしません(非同期ポストバック中にScriptManagerにServiceReferenceを追加します):
private void RegisterWebservice(Type webserviceType)
{
var scm = ScriptManager.GetCurrent(Page);
if (scm == null)
throw new InvalidOperationException("ScriptManager needed on the Page!");
scm.Services.Add(new ServiceReference("~/" + webserviceType.Name + ".asmx"));
}
私の目標は、UserControlが周囲のアプリケーションにできるだけ邪魔にならないようにすることです。そうしないと、を含むServiceReferenceのを静的に定義する必要がありますが、これは私が望むものではありません。ScriptManagerProxyPage
編集:
私がこの記事を書いたとき、私は疲れていたに違いありません...私は書かServiceReferenceないつもりだったのでScriptReference。それに応じて上記のテキストを更新しました。
今私が持っています:
<asp:ScriptManagerProxy runat="server" ID="scmProxy">
<Services>
<asp:ServiceReference Path="~/UsefulnessWebService.asmx" />
</Services>
</asp:ScriptManagerProxy>
しかし、CodeBehindにWebサービスを登録したいと思います。