我已经创建了一个需要在 .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 事件,因为已经有一个预设(它是皮肤等)所以我将代码放在 <script runat="server"></script>
之间
然而,它给了我一个错误,说“预期声明”...我拿出了几行,它似乎说它找不到 Me.Page (或者它即将出现空)
知道我做错了什么吗?
我可以从<script runat="server">
访问Me.Page吗?就像我一样,或者我应该以不同的方式来做?
最佳答案
在这种情况下,您可以使用 ScriptManagerProxy 类以声明方式添加引用。只要“父”页面中已经定义了 ScriptManger,就会使用代理类。使用 ScriptManagerProxy 的方式与使用常规 ScriptManager 的方式相同。有关代理类的更多信息可以找到 here.
示例标记:
<asp:ScriptManagerProxy runat="server" ID="Manager">
<Scripts>
<asp:ScriptReference Path="~/JScript.js" />
</Scripts>
</asp:ScriptManagerProxy>
关于asp.net - 如何从 DNN 中的 .ascx Web 用户控件更新 ScriptManager?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/1009421/