私が取り組んでいる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 is not defined」が表示されます
どんな助けでも大歓迎です。
キックのために、私はこの方法も無駄にしようとしました:
ScriptManager.RegisterStartupScript(Button1, Button1.GetType(), csConsoleLogSomething, consoleLogScript, True)
ボタン HTML:
<asp:Button ID="Button1" runat="server" Text="Button"/>
これにより、メインの aspx ページへの投稿が行われました。コンソールには何も記録されませんでした。可能であれば、ASP コントロールから離れたいと思います。最終的な目標は、jQuery をこのアプリケーションに統合することです。