2009-09-03 16 views
1

(私が探していたまさに見つけることができる)の前に、この質問がされた場合、私はjQueryのに新しい、そしてごめんなさい使用してラベルがテキスト

が含まれている場合、私は、次のconvetionを実装したいクラスを適用する命名規則:私は名前でエラーラベルを作成する場合は「_lblError」は、このような:

<div> 
    <asp:label ID="_lblError" text="this is a error msg"/> 
</div> 

クラスAまたはClassBのは、ラベルの「テキスト」のパラメータに空の文字列かどうかに応じて、それに適用されます。

また、このコードをアプリケーション全体で使用される外部のjsファイルに配置したいと考えています。

ありがとうございました!

+0

このタグのHTML出力はどのようなものですか? –

+0

スパン。 ctl00__mainArea__lblErrorのような接頭辞が付いたID – Larsi

答えて

1

でコントロールを作成しません、あなたはおそらくラベルに選択のために使用することができるCSSクラスを与える必要があります。

<asp:Label Id="_lblError" Text="This is the error message" 
    CssClass="ThisIsWhatWeWillllWorkWith" /> 

これますおそらく出力

<span id="ct100__lblError" class="ThisIsWhatWeWillWorkWith"> 
    This is the error message. 
</span> 

のようなものになりましたセレクタとしてクラスを使用してjQueryの中でラベルを選択し、.text()プロパティが空であるかどうかに応じて、クラスAまたはBを追加することができます。

$(function() { 
    $('.ThisIsWhatWeWillWorkWith').each(function() { 
     if($(this).text() == '') { $(this).addClass('ClassA'); } 
     else { $(this).addClass('ClassB'); } 
    }); 
}); 

すべてのコードを変更せずに作業の無保証で、あるとして提供されます。しかし、あなたは問題を解決する方法の一般的な考えを得ます...

EDIT:あなたのコメントに応じて、ここにラベルにCSSクラスを追加せずにそれを行う方法です。代わりに、エラーメッセージの<asp:Label>タグを使用して、あなたがあなたのページにハードコードタグでリテラルをラップ:

<span class="ThisIsWhatWeWillWorkWith"><asp:Literal ID="__ltlError" Text="This is the error message.</asp:Literal></span> 

別の、おそらくよりエレガントな方法、独自のカスタムラベルを作成することです、と使用代わりに。

public class ErrorLabel : System.Web.UI.WebControls.Label 
{ 
    public ErrorLabel() { 
     this.CssClass = "ThisIsWhatWeWillWorkWith"; 
    } 
} 

あなたは、次の行をあなたのページにエラーメッセージを置く:

<asp:ErrorLabel ID="__lblError" Text="This is the error message" /> 
再び

、ない上記のコードがあるように動作するかどうか確認してください。しかし、もう一度、あなたは何をすべきかのアイデアを得ます...

+0

はい、slnを提供してくれてありがとうが、私はslnのための簡単な命名規則で動作することを目指していました。 – Larsi

+0

クライアント側IDを完全に制御できないため、IDの命名規則を使用して防弾型セレクタを取得する方法はありません。サーバー上で少し冗長になりますが、完全に機能するバージョンの場合は、自分の投稿への編集を参照してください。 –

+0

同意し、元の質問にslnを提供するために、私はあなたの答えを受け入れるでしょう。おそらく、jqueryで慣習を使用する方法について別の質問を投稿します。ありがとう – Larsi

0

エラーがある場合は異なるフォントや背景を、エラーラベルにテキストがない場合は何も表示せず、ラベルではなくリテラルにすることが考えられます。リテラルコントロールがして起動するにはテキストなし(MSDN doc

+0

このシナリオではうまくいくでしょうが、私はオートメイキングスタイリングを適用するために命名規則をどのように使用できるかについて把握したいと考えていました。私はそれに答えるかどうかを待っている。それを反映するようにタイトルを更新します。 – Larsi

関連する問題