我有一个我正在开发的 asp.net webforms 应用程序。它使用一个主 aspx 页面来创建布局,然后在面板中使用 ascx 页面来显示数据。
我需要做的是使用带有用户控件(ascx 文件)的 javascript。
我认为在主 aspx 页面上有一个脚本管理器可以让我在 .ascx 页面上的 Page_Load 函数中注册脚本。
这是我正在尝试做的一个基本示例:
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
这是 ascx 页面上的 HTML:
<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 未定义”
任何帮助将不胜感激。
对于踢,我也只是尝试过这种方法无济于事:
ScriptManager.RegisterStartupScript(Button1, Button1.GetType(), csConsoleLogSomething, consoleLogScript, True)
按钮 HTML:
<asp:Button ID="Button1" runat="server" Text="Button"/>
这导致了一个帖子到主 aspx 页面。控制台没有记录任何内容。如果可能的话,我想远离 asp 控件。最终目标是将 jQuery 集成到此应用程序中。