我已经创建了一个我需要在.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,还是应该以不同的方式进行?
答案 0 :(得分:4)
在这种情况下,有一个ScriptManagerProxy类可用于以声明方式添加引用。只要在“父”页面中已经定义了ScriptManger,就会使用代理类。您使用ScriptManagerProxy的方式与使用常规ScriptManager的方式相同。有关代理类的更多信息可以在here.
找到示例标记:
<asp:ScriptManagerProxy runat="server" ID="Manager">
<Scripts>
<asp:ScriptReference Path="~/JScript.js" />
</Scripts>
</asp:ScriptManagerProxy>