【问题标题】:Including a WebService reference in a control在控件中包含 WebService 引用
【发布时间】:2010-09-11 22:14:54
【问题描述】:

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

但是,我还需要引用一个 web 服务,我通常会像这样将它包含在页面上的脚本管理器中

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

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

【问题讨论】:

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


    【解决方案1】:

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

    【讨论】:

      【解决方案2】:

      你可以自己添加javascript来调用webservice:

      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 相同。

      【讨论】:

        【解决方案3】:

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

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 1970-01-01
          • 2010-12-30
          • 1970-01-01
          • 2018-09-15
          • 2017-03-02
          相关资源
          最近更新 更多