非同期ポストバック中にに新しいServiceReference
インスタンスを追加して、後でクライアント側のスクリプトを介して参照されたWebサービスを使用できるようにすることは可能ですか?ScriptManager
Page
の中にあるaの中でこれを実行しようとしているので、プログラムでUserControl
ScriptReferenceRepeater
を追加して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
のを静的に定義する必要がありますが、これは私が望むものではありません。ScriptManagerProxy
Page
編集:
私がこの記事を書いたとき、私は疲れていたに違いありません...私は書かServiceReference
ないつもりだったのでScriptReference
。それに応じて上記のテキストを更新しました。
今私が持っています:
<asp:ScriptManagerProxy runat="server" ID="scmProxy">
<Services>
<asp:ServiceReference Path="~/UsefulnessWebService.asmx" />
</Services>
</asp:ScriptManagerProxy>
しかし、CodeBehindにWebサービスを登録したいと思います。