У меня есть приложение asp.net webforms, над которым я работаю. Он использует главную страницу aspx для создания макета, а затем использует страницы ascx в панели для отображения данных.Регистрация скрипта с помощью User Control
Что мне нужно сделать, это использовать javascript с пользовательским управлением (файлы ascx).
Я думал, что наличие диспетчера сценариев на главной странице aspx позволит мне регистрировать скрипты в функции Page_Load на страницах .ascx.
Вот простой пример того, что я пытаюсь сделать:
Protected Sub Page_Load(ByVal sender As Object, ByVal e As System.EventArgs)
Dim csConsoleLogSomething As String = "ConsoleLogSomethingScript"
Dim consoleLogScript As String = "function logSomething() { console.log('SOMETHING'); }"
Dim cs As ClientScriptManager = Me.Page.ClientScript
cs.RegisterStartupScript(Me.GetType(), csConsoleLogSomething, consoleLogScript, True)
'I have also tried using: Dim cs As ClientScriptManager = Me.Parent.Page.ClientScript
End Sub
Вот HTML на странице ASCX:
<table width="100%" cellpadding="0" cellspacing="0" style="margin: 0px;">
<tr>
<td>
<input id="btnWTF" type="button" onclick="logSomething()" value="DO SOMETHING FOR THE LOVE OF MOSES" />
</td>
</tr>
</table>
Вот менеджер сценария декларации о главном ASPX страница:
<asp:ScriptManager ID="ScriptManager1" runat="server" EnableTheming="True" EnablePageMethods="true">
</asp:ScriptManager>
Я также попытался создать простое оповещение, чтобы подняться на загрузку страницы, но я не могу получить любой из моих сценариев для выполнения. Когда я нажимаю кнопку, я получаю «ReferenceError: logSomething is not defined»
Любая помощь будет принята с благодарностью.
Для пинков я просто попробовал этот метод без толку:
ScriptManager.RegisterStartupScript(Button1, Button1.GetType(), csConsoleLogSomething, consoleLogScript, True)
Кнопки HTML:
<asp:Button ID="Button1" runat="server" Text="Button"/>
Это привело к сообщению на главной странице ASPX. На консоль ничего не было. Если возможно, я хотел бы держаться подальше от контролей. Конечной целью является включение jQuery в это приложение.
Не могли бы вы разместить дополнительную информацию о своей странице ASP (включая область, в которую вы вставляете свой контроль)? Я мог бы предположить .. – rodrigogq
Мы используем страницу main.aspx, которая по существу является макетом для системы. Страницы Ascx используются на странице aspx - поэтому, к сожалению, элемент управления отсутствует на странице aspx. –