2010-12-20 10 views
0

本当に長いクライアントIDを取得しようとしています。それらのうちのいくつかは約100文字で、ばかげている。 ページIDを短縮するために使用できるツールやツールはありますか?本当に長いクライアントIDを短縮する

ID = "ctl00_ctl00_MainContent_MemberMain_Abc_asdsad ...._ DlSAdasdasdasd_ctl00_PnsadasdasdnsHF"

EDIT: 私は問題の原因である多くを入れ子にしています。 .net 3.5を使用しています。いくつかのIDがjavascriptファンクションで使用されているため、衝突は問題ありません

+3

にASP.Net 4.0で開発されたアプリを作るために必要なので、これはだったしなければならなかった理由は?あるいは、衝突は大丈夫ですか? – robert

+0

最も簡単な修正:あまり入れ子にしないでください。クライアントIDは、デフォルトでコード内のコントロールの名前とその親コン​​トロールに基づいています。そして、あなたはより良いHTMLを生成するでしょう。 :P – cHao

答えて

2

ASP .NET 4を使用している場合は、ClientIDModeをStaticに設定できます。次に、階層内のコントロールIDが一意であることを確認するだけです。 See this

0

どのバージョンのVS.NET/.NETを使用していますか? ASP.NET 4の新しいClientIDModeには、あなたがクライアントIDが生成される方法を制御することができます:

http://www.dotnetcurry.com/ShowArticle.aspx?ID=492

0

INamingContainerインターフェースは、あなたが探しているものと考えられます。周囲のコントロールに実装します。

1

多分。 .NET 4.0を使用している場合。もしそうでなければ、私は名前を短縮する方法はないと思う。 ASP.net < = 3.5では、それぞれのContentPlaceHolderまたはUserControlはその名前をに追加します。これらをJavaScriptでアクセスしようとしている場合は、いくつかの方法を使用できます。

.NET 4.0のみ:MasterIDまたはUserControl宣言(およびおそらくページ宣言)にClientIDMode = "Predictable"またはClientIDMode = "Static"を入れます。
は、.NET 3.5以下にしている場合は、短縮することはできませんが、これらのいずれかを使用できます。
var ElemIWant=$("[id$=PnsadasdasdnsHF]");

  1. のjQueryを使用して、エンド・テキストで見つけることができる機能を持っています

  2. インラインASP呼び出しを使用します。
    var ElemIWant=document.getElementById('<% =TextBox1.ClientID %>);

別の記事は、あなたが見ることができるもあります:あなたの意図は、このようなHTMLCompressorとしてHTMLのコンプレッサーを検討し、ページの出力量を圧縮することである場合 Need workaround for .Net Master Page Name Mangling

1

http://www.textfixer.com/html/compress-html-compression.php

ASP.NETマークアップからすべての空白を削除すると、AJAX帯域幅で45%の節約ができました。違いを見るには、Fiddler(http://www.fiddler2.com/fiddler2/)を使用してください。

+0

これは元の質問に答えているかどうかわかりません - クライアント側のJavaScriptでは圧縮が問題です。 –

2

この問題も発生しましたが、私の解決策はjQueryの側にありました。私は単にセレクターを変更しました。通常、探しているIDはASP.NetのIDの最後の部分です。デフォルトではIDの呼び出しはこのセレクタで生成されます:#theidしたが​​って、ididが "theid"で終わる要素を見つけるCSS3セレクタの[id $ = theid]に変更しました。例:

から:

if (jQuery("#txtEmailFinish").val() != "") 

これに変更します。

if (jQuery("[id$=txtEmailFinish]").val() != "") 

あなたはすでにあなたのJavaScriptが動作し、簡単な検索でしまった場合の参考にして交換、IDSへの呼び出しを変更することができます。

注:私は、私は戻ってASP.Netあなたが一意であることが、あなたの結果のIDが必要です

関連する問題