在控件中包含Web服务引用

时间:2008-09-22 06:52:22

标签: c# .net javascript ajax web-services

我在C#中编写了一个控件来覆盖内置的DropDownList控件。为此,我需要一个包含的javascript资源,我将其作为嵌入式资源包含,然后添加WebResource属性,该工作正常。

但是,我还需要引用一个webservice,我通常会在页面上的scriptmanager中包含这样的

<asp:scriptmanager id="scriptmanager" runat="server">
<Services>
<asp:ServiceReference Path="~/Path/To/Service.asmx" />
</Services>
</asp:scriptmanager>

有没有办法让页面在我创建的控件后面的代码中包含此引用,类似于它包含嵌入式javascript文件的方式?

3 个答案:

答案 0 :(得分:2)

您可以在代码或控件的标记中添加ScriptManagerProxy,并通过它添加服务引用。 ScriptManagerProxy中的设置在编译时与“真实”ScriptManager合并。

答案 1 :(得分:0)

如果您知道usercontrol所在的页面,您可以从用户控件中执行((PageName)this.Page).scriptmanager.Services.Add()

答案 2 :(得分:0)

您只需添加javascript即可自行调用网络服务:

Sys.Net.WebServiceProxy.invoke(url,methodName,useHttpGet,parameters,succeededCallback,failedCallback,userContext,timeOut);

http://www.asp.net/AJAX/Documentation/Live/ClientReference/Sys.Net/WebServiceProxyClass/WebServiceProxyInvokeMethod.aspx

文档适用于asp.net Ajax 1.0,但它是相同的.net 3.5。