2007年06月27日

外部Javascriptでまた同じ過ちを・・・Javascriptのデバッグ方法

以前「ASP.NETでJavascriptを外部ファイルにする場合の注意」というTipsを書いたが、また同じ過ちをしてしまった。

文字コードがUTF-8になっていないためのエラーだった。ただ今度の場合、開発環境のWindowsXPでは正常に動作していたので、ユーザーの運用環境であるWindowsServer2003でエラーをしたときもそれが原因だとは思わなかった。
インターネットで見つけたJavascriptのサンプルを一部修正して使ったのだが案の定Shift-JISで保存されたものだった。一部に日本語が使われていたが、正常に動作してたためそのまま使っていたのだ。
それがWindowsServer2003では読み込み時にエラーして全く使えない状態になり(下図)、

読み込み時エラー発生

そこで初めて問題に気が付いたわけである。しかも自分で書いた以前のTipsのことをすっかり忘れていて数時間無駄に原因を調べていた。が、このときJavascriptのデバックの方法を見つけたのが唯一の収穫でもあった。

Javascriptをデバッグするときこれまで良く使ったのはalert文を使って途中で止めることだった。これだと予想されるバグの発生場所にいくつもalertを書いていかなくてはいけないので結構面倒だった。
それが、次の方法で不要になる。ただしブラウザはIEに限るが。

インターネットオプション−詳細

IEのインターネットオプションの「詳細設定」で上図のように「スクリプトのデバッグを使用しない(Internet Explorer)」のチェックを外す。こうするとエラーの発生した場所(行番号)とエラー内容を表示してくれる。(下図)

Javascriptのデバッグ

エディタ画面にもその外部Javascriptソースが開きカーソルが点滅している。

ともかく外部Javascriptは必ずUTF-8で保存しておこう
posted by なっちゃん at 10:54| 静岡 ??| Comment(0) | TrackBack(0) | ASP.NET Tips | このブログの読者になる | 更新情報をチェックする

2007年06月21日

消えたテンプレート

いつものように、プロジェクトにWebフォームを追加しようとして「新しい項目の追加」を開いたところ・・・無い!テンプレートから「Webフォーム」が消えている!!(下図)

Webフォームが消えてしまったテンプレート一覧
Webフォームが消えたテンプレート

ここ数日別の作業をしていてフォームの追加はしていなかったが、テンプレートから消えるなんてことは一度も無かった。これじゃ仕事にならんではないか!

怒っても仕方が無いので原因と対策を調べてみたが、マイクロソフトのヘルプ「テンプレートの問題を解決する」では、自作のテンプレートのことを言っているので元々提供されているテンプレートが消えた今回の場合には当てはまらない。

結局、VisualStudio2005を修復セットアップして回復した。よく見るとWebフォーム以外にも(いつの間にか)消えていたらしいテンプレートもあることが分かった。何で消えるのだろう?

きれいに復帰したテンプレート一式
テンプレートが元通りになった
posted by なっちゃん at 20:53| 静岡 ????| Comment(0) | TrackBack(0) | ASP.NET Tips | このブログの読者になる | 更新情報をチェックする

2007年06月14日

AJAX Control Toolkitの「Calendar」の月が日本語にならないのは

ASP.NET AJAX Control Toolkitの中からCalendarを使ってみた。

月が英語表記になっている

とても便利なのだが、月の表記が英語になってしまう。
サンプルではちゃんと日本語になるのに、自分の作ったページではどういうわけか英語表記になってしまう。

半日ほど調べまわってようやく、サイトのサンプルの下に英語で何やら書いてあるのを見つけた。これによるとページの国別属性Cultureの設定が必要だということ。ページ単位なら@Pageディレクティブにサイト全体ならWeb.Configに設定するようだ。
試しにWeb.Configに設定してみた。

カルチャー設定

でもやっぱり英語表記のままだった(--;
もう一度説明を見るとCulture設定を有効にするには、さらにAJAXのScriptManagerのプロパティ「EnableScriptGlobalization」「EnableScriptLocalization」を有効にする必要があると書かれていた(^^;

ScriptManagerのプロパティ設定

以上の設定をしたところ、やっと日本語表記になった!
しかも曜日も日本語になっている。

月が日本語になっている

※ちなみに、ScriptManagerのプロパティを有効にすれば、Culture設定はあえて記述しなくても日本語表記になることも判った。
posted by なっちゃん at 10:21| 静岡 ?J| Comment(2) | TrackBack(2) | ASP.NET Tips | このブログの読者になる | 更新情報をチェックする