回答編集履歴
3
訂正
test
CHANGED
@@ -12,11 +12,11 @@
|
|
12
12
|
Control.ClientIDMode プロパティ
|
13
13
|
https://docs.microsoft.com/ja-jp/dotnet/api/system.web.ui.control.clientidmode?view=netframework-4.8
|
14
14
|
|
15
|
-
例えば、<asp:DropDownList ID="ListboxSelect"
|
15
|
+
例えば、<asp:DropDownList ID="ListboxSelect" ...> に ClientIDMode="Static" を追加すれば html に変換されたときの id は ID と同じ ListboxSelect になるので getElementById("ListboxSelect") で取得できます。
|
16
16
|
|
17
17
|
他には Matsumon0104 さんの回答にあるように <%= %> を使用する方法があります。これは ASP.NET プログラムから情報を最も簡単に表示するためのもので、<%= と %> 間に設定した ASP.NET プログラムの値がその部分の html ソースに埋め込まれます。
|
18
18
|
|
19
|
-
例えば上の例で document.getElementById("<%=ListboxSelect.ClientID%>") とすれば html ソースに変換されると、
|
19
|
+
例えば、上のような ClientIDMode は設定しない場合、質問者さんのコードの例で document.getElementById("<%=ListboxSelect.ClientID%>") と変更すれば、それが html ソースに変換されると、
|
20
20
|
|
21
21
|
```
|
22
22
|
document.getElementById("MainContent_ListboxSelect")
|
2
訂正
test
CHANGED
@@ -1,6 +1,6 @@
|
|
1
1
|
(1) document.getElementById("ListboxSelect") で取得できない理由
|
2
2
|
|
3
|
-
例えばマスターページなどの名前付きコンテナにサーバーコントロールが配置されると、
|
3
|
+
例えばマスターページなどの名前付きコンテナにサーバーコントロールが配置されると、html に変換された時の id とサーバーコントロールの ID は異なってきます。
|
4
4
|
|
5
5
|
例えば、質問者さんのコードの <asp:DropDownList ID="ListboxSelect" ...> がマスターページに配置されているとすると、それが html に変換されると .NET Framework 4.8 のデフォルトでは以下のようになります。マスターページの ContentPlaceHolder の ID が先頭に追加されています。
|
6
6
|
|
1
訂正
test
CHANGED
@@ -2,7 +2,7 @@
|
|
2
2
|
|
3
3
|
例えばマスターページなどの名前付きコンテナにサーバーコントロールが配置されると、その ID は html に変換された時の id とは異なってきます。
|
4
4
|
|
5
|
-
例えば、質問者さんのコードの <asp:DropDownList ID="ListboxSelect"
|
5
|
+
例えば、質問者さんのコードの <asp:DropDownList ID="ListboxSelect" ...> がマスターページに配置されているとすると、それが html に変換されると .NET Framework 4.8 のデフォルトでは以下のようになります。マスターページの ContentPlaceHolder の ID が先頭に追加されています。
|
6
6
|
|
7
7
|
```
|
8
8
|
<select name="ctl00$MainContent$ListboxSelect" id="MainContent_ListboxSelect">
|
@@ -16,7 +16,7 @@
|
|
16
16
|
|
17
17
|
他には Matsumon0104 さんの回答にあるように <%= %> を使用する方法があります。これは ASP.NET プログラムから情報を最も簡単に表示するためのもので、<%= と %> 間に設定した ASP.NET プログラムの値がその部分の html ソースに埋め込まれます。
|
18
18
|
|
19
|
-
例えば上の例で document.getElementById("<%=ListboxSelect.ClientID%>") とすれば html ソースに
|
19
|
+
例えば上の例で document.getElementById("<%=ListboxSelect.ClientID%>") とすれば html ソースに変換されると、
|
20
20
|
|
21
21
|
```
|
22
22
|
document.getElementById("MainContent_ListboxSelect")
|