Как я могу обновить ScriptManager из пользовательского веб-элемента управления.ascx в DNN?
Я создал веб-сервис, который мне нужно использовать на моей странице.ascx. Я не могу просто добавить это:
<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
Любое понимание того, что я делаю неправильно?
Могу ли я получить доступ к Me.Page из <script runat="server">
как я или я должен делать это по-другому?
1 ответ
В таких случаях существует класс ScriptManagerProxy, который можно использовать для декларативного добавления ссылок. Прокси-класс используется всякий раз, когда на "родительской" странице уже определен ScriptManger. Вы работаете с ScriptManagerProxy так же, как с обычным ScriptManager. Более подробную информацию о прокси-классе можно найти здесь.
Пример разметки:
<asp:ScriptManagerProxy runat="server" ID="Manager">
<Scripts>
<asp:ScriptReference Path="~/JScript.js" />
</Scripts>
</asp:ScriptManagerProxy>