車の情報まとめアプリ04(車両情報_ASP.NETとJavascript)
■車両情報について取り扱う。
車両のメーカー名から車両名をドロップダウンリストに入れることができたので、車両情報について検討する。今まではASP.NETの中で操作してきたけど、Javascriptを使ってみる。
今のAspxファイルは、下のように<html></html>, <head></head>, <body></body>が入っている。Visual Studioのコンポーネントは、<body></body>部分に入り、<head></head>部分にJavascriptを記述する。今回は、AspxファイルでのJavascriptのサンプルの動作まで。
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title></title>
<script language="javascript" src="Scripts/jquery-3.4.1.min.js"></script>
<script>
...
</script>
</head>
<body style="height: 825px; width: 765px">
<form id="form1" runat="server">
<div>
</div>
<asp:Panel ID="Panel1"
...
</asp:Panel>
<br />
</form>
</body>
</html>
今回は、Visual Studio 2019のシングルページアプリケーションのテンプレートから作成しているが、テンプレート作成時にScriptsフォルダ中にjQueryなどのライブラリが入っていた。jQueryも合わせて試してみる。
サンプルのJavascriptとして、下のコードを入れた。$(function(){}) 部分がjQuery。
<script language="javascript" src="Scripts/jquery-3.4.1.min.js"></script>
<script>
function sampleJavascript() {
let sampleVal = prompt("サンプル", "")
let sampleData = document.getElementById('<%= HiddenField1.ClientID %>').value
$(function () {
$("body").append("<div id='sampleLayer'>")
$("body").append(sampleData)
$("body").append("</div>")
});
}
</script>
ツールボックスのボタンの中にASP.NETのボタンとHTMLのボタンがある(下の画面)。Javascriptの実行にHTMLのボタンを使用する。なお、この実行をASP.NETのボタンに設定してもエラーとなるだけだった。
ボタンを押すと上のコードが実行され、promptで入力のポップアップダイアログが表示される。これは単にjavascriptの試し。その後のdocument.getElementById()で、HiddenField1(これはASP.NETのコンポーネント)からデータ取得をし、jQueryのメソッド内で<body></body>にその情報を追加する。
実行結果が下のもの。HiddenField1に入れるところをもう少し工夫すれば、車両名に応じたデータを入れられるけど、動かすことを優先。
ASP.NETはサーバサイドで、Javascriptはクライアントサイドなので、ボタンとかのコンポーネントもそれぞれにあるのだと思う。値を受け渡す方法はいろいろあるようだけど(ScriptManagerとか)、とりあえずはASP.NETからjavascriptへデータの受け渡しができた。