私は既存のアプリケーションをDotNetNukeモジュールに移植し、奇妙な動作を発見しました。コードがHTML要素を識別できるように、私はJavaScriptを作成するときにClientIDを使用します。それは、このような値は何かを作成通常:コードをDotNetNukeモジュールに移動した後にClientIDが無効になる
"g_ctl00_ctl01_ctl00_ctl00_txtSearch"
を私たちは、すべての権利、この万回を見てきましたか?まあ、DotNetNukeのモジュールにこのコードを移植すると、最初の時間のためにそれを実行した後、ClientIDプロパティはこれを返している:
"dnn_ctr397_GalleryServerPro.Web.Gallery, TechInfoSystems_ctl00_ctl01_ctl00_ctl00_txtSearch"
お知らせカンマとスペース。これは、あらゆる種類のJavaScriptエラーを引き起こしています。たとえば、ASP.NETログインコントロールは現在無効JavaScriptを出力している:私のモジュールはTechInfoSystems.GalleryServerPro.dllのアセンブリ名を持つ
var dnn_ctr397_GalleryServerPro.Web.Gallery, TechInfoSystems_ctl00_ctl01_ctl01_lv_ctl02_Login1_UserNameRequired = document.all ? document.all["dnn_ctr397_GalleryServerPro.Web.Gallery, TechInfoSystems_ctl00_ctl01_ctl01_lv_ctl02_Login1_UserNameRequired"] : document.getElementById("dnn_ctr397_GalleryServerPro.Web.Gallery, TechInfoSystems_ctl00_ctl01_ctl01_lv_ctl02_Login1_UserNameRequired");
、デフォルトの名前空間はGalleryServerPro.Webで、ユーザーコントロールがにありますいくつかの余分なテキストがどこから来ているのかを部分的に説明するので、なぜがそこにあるのですか?クライアントIDがコンマ、スペース、またはjavascriptで問題を引き起こす可能性のある他の文字を出力しないようにするにはどうすればよいですか?
おかげで、 ロジャー
私は最初に(ClientIDを生成するときに使用される)UniqueIDをオーバーライドしようとしましたが、クリックイベントが発火しなくなったなどのその他の問題が発生しました。最後に答えは、ユーザーコントロールにIDを割り当てることでした。 – user98773