回答編集履歴

3

訂正

2022/08/10 03:43

投稿

退会済みユーザー
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" ,,, に ClientIDMode="Static" を追加すれば html に変換されたときの id は ID と同じ ListboxSelect になるので getElementById("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

訂正

2022/08/10 03:26

投稿

退会済みユーザー
test CHANGED
@@ -1,6 +1,6 @@
1
1
  (1) document.getElementById("ListboxSelect") で取得できない理由
2
2
 
3
- 例えばマスターページなどの名前付きコンテナにサーバーコントロールが配置されると、その ID は html に変換された時の id とは異なってきます。
3
+ 例えばマスターページなどの名前付きコンテナにサーバーコントロールが配置されると、html に変換された時の id とサーバーコントロールの ID は異なってきます。
4
4
 
5
5
  例えば、質問者さんのコードの <asp:DropDownList ID="ListboxSelect" ...> がマスターページに配置されているとすると、それが html に変換されると .NET Framework 4.8 のデフォルトでは以下のようになります。マスターページの ContentPlaceHolder の ID が先頭に追加されています。
6
6
 

1

訂正

2022/08/10 03:24

投稿

退会済みユーザー
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
  例えばマスターページなどの名前付きコンテナにサーバーコントロールが配置されると、その ID は html に変換された時の id とは異なってきます。
4
4
 
5
- 例えば、質問者さんのコードの <asp:DropDownList ID="ListboxSelect" ,,, がマスターページに配置されているとすると、それが html に変換されると .NET Framework 4.8 のデフォルトでは以下のようになります。マスターページの ContentPlaceHolder の ID が先頭に追加されています。
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")