【问题标题】:How can I update the ScriptManager from a .ascx Web User Control in DNN?如何从 DNN 中的 .ascx Web 用户控件更新 ScriptManager?
【发布时间】:2010-11-03 19:27:35
【问题描述】:

我创建了一个需要在我的 .ascx 页面中使用的 Web 服务。我不能只添加这个:

<asp:ScriptManager ID="OWUScripts" runat="server">
    <Services>
        <asp:ServiceReference Path="~/OWUDashboard.asmx" />
    </Services>
</asp:ScriptManager>

因为那时我在页面上有多个 ScriptManager。所以我做了一些研究,发现我需要将这个添加到 Page_Load 事件中......

Dim myScriptManager As ScriptManager = ScriptManager.GetCurrent(Me.Page)

Dim objServiceReference As ServiceReference = New ServiceReference()
objServiceReference.Path = "~/MyService.asmx"
myScriptManager .Services.Add(objServiceReference)

但我无法访问 Page_Load 事件,因为已经有一个预设(它是一个皮肤和所有)所以我在&lt;script runat="server"&gt;&lt;/script&gt;之间扔了代码

但是它给了我一个错误,说“需要声明”......我取出了几行,它似乎在说它找不到 Me.Page(或者它即将出现 null)

任何关于我做错了什么的见解?

我可以像现在一样从&lt;script runat="server"&gt; 访问 Me.Page,还是应该以不同的方式访问?

【问题讨论】:

  • 从您的问题中,您注意到您都在皮肤或模块中使用它。这是哪个?
  • 对不起,这是个皮肤

标签: asp.net web-services scriptmanager dotnetnuke service-reference


【解决方案1】:

在这种情况下,您可以使用 ScriptManagerProxy 类以声明方式添加引用。只要在“父”页面中已经定义了 ScriptManger,就会使用代理类。您使用 ScriptManagerProxy 的方式与使用常规 ScriptManager 的方式相同。有关代理类的更多信息可以找到here.

示例标记:

<asp:ScriptManagerProxy runat="server" ID="Manager">
<Scripts>
    <asp:ScriptReference Path="~/JScript.js" />
</Scripts>
</asp:ScriptManagerProxy>

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2011-02-11
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多