如何从DNN中的.ascx Web用户控件更新ScriptManager?

时间:2009-06-17 20:41:48

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

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

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

因为那时我在页面上有多个ScriptManagers。所以我做了一些研究,发现我需要将它添加到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事件,因为已经有一个预设(它是一个皮肤和所有)所以我把代码放在<script runat="server"></script>

之间

然而它给了我一个错误,说“预期宣言”......我拿出了几行,似乎说它找不到我。页面(或者它即将出现)

有关我做错的任何见解?

我可以像{I} {{}}那样访问Me.Page,还是应该以不同的方式进行?

1 个答案:

答案 0 :(得分:4)

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

找到

示例标记:

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