新着記事一覧
タグ一覧
テーマ
ライト
ダーク
iPentec.com
/
Doc
/
C#
/
ASP.NET
/
マスターページ
目次
1
現象
2
原因
3
対策
マスターページを用いるとJavascriptが動作しなくなる原因と対策 - ASP.NET
現象
ASP.NETでマスターページを用いたWebフォームを作成すると、そのページではJavaScriptが動作しない、またはエラーが出るケースがあります。特にこの現象は、マスターページを使わないWebフォームで動作していたJavaScriptをマスターページを使ったWebフォームに移植した際に発生します。
原因
この現象はマスターページを使った場合にASP.NETコントロールのIDの頭にプレースホルダーのIDが付加されてしまうため発生します。
マスターページを使わない場合は、WebフォームでラベルのIDを"Label1"と定義した場合、コンテンツHTMLの表示画面でも"Label1"として表示されます。一方、マスターページを使った場合のWebフォームではWebフォームでラベルのIDを"Label1"と定義した場合、コンテンツHTMLの表示部分では"ctl00_ContentPlaceHolder1_Label1"と頭に、t100_ContentPlaceHolder1という、コンテンツプレースホルダの名前が自動で付加されてしまいます。
このため、JavascriptでASP.NETのコントロールをID指定でアクセスする際に単純に"Label1"を指定した場合、実際には存在しないコントロールにアクセスすることになり、エラーが発生したり、Javascriptが動作しない現象が発生します。
対策
以下の対策があります。
Javascript中のコードでコントロールにIDでアクセスする部分のIDの先頭に "ctl00_ContentPlaceHolder1_" を付加する。
ASP.NETのコントロールを使わずに、HTMLコントロールや、INPUTタグを使ったフィールドに変更する。
があります。
著者
Penta
iPentecのメインプログラマー
C#, ASP.NET の開発がメイン、少し前まではDelphiを愛用
関連するページ
マスターページを利用しているページにonloadイベントのJavaScriptを追加する
マスターページのコントロールを操作する (FindControlを利用する)
マスターページのコントロールへアクセスする方法
マスターページのリンクや画像が正しく動作しない。(マスターページのリンク配置について)
マスターページ利用環境でのFindControlによるコンテンツフォームのコントロール取得方法
マスターページのコントロールを操作する (マスターページのクラスにメソッドやプロパティを実装)
マスターページのCSSをJavaScriptで置換しても正しく動作しない
最終更新日: 2024-01-06
作成日: 2010-03-03
ドキュメント
新着記事一覧
タグ一覧
ドキュメント トップ
コンテンツ
YouTube
iPentec
プライバシー
iPentecについて
iPentec all rights reserverd.