LITERAL
に対するLABEL
コントロールをいつ、どこで使用すべきかについて、いくつかの権威を聞きたかっただけです。
私が理解しているように、違いはこれです:LABEL
は<SPAN>
追加されるタグ。
個人的には<SPAN>
私のHTMLのタグは非常に迷惑で、ASPを介して実際にスタイルを適用しないため、LITERAL
sはほとんどの場合に使用すべきもののようですが...other私が知らないラベルを使用することに関する考慮事項または利点。
スタイルを適用しないのであれば、LABEL
sをLITERAL
sに置き換えることは100%大丈夫ですか?他の考慮事項はありませんか?
ええ、主な違いは、Literal
コントロールはテキストをレンダリングするだけですが、Label
コントロールは<span>
タグで囲むことです(AssociatedControlID
プロパティを使用しない限り、その場合、Label
コントロールは<label>
タグをレンダリングします)。
そのため、ラベルのスタイルを簡単に設定できますが、テキストを挿入するだけの場合は、リテラルが最適です。リテラルコントロールには、テキストのレンダリング方法を制御する便利なプロパティ Mode
もあります。 HTMLエンコードするか、変更せずにレンダリングするか、「サポートされていないマークアップ言語要素」を削除することができます。
スタイルを適用していない場合(たとえば、Label
のCssClass
プロパティを使用して)、Label
コントロールをLiteral
コントロールに置き換えても問題ありません。
次のようなコードがある場合
<asp:Label EnableViewState="false" ID="Label8" runat="server"
AssociatedControlID="txtEmail">Email Address:</asp:Label>
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
ラベル要素を使用するのが最適です。これは、ユーザーがラベルをクリックすると自動的にラベルがクリックされるように、正しいlabel
属性を持つHTML for
要素に正しく変換するためです。テキストフィールド内にカーソルを設定します。
それ以外の場合は、span
でテキストをラップすることがcssスタイリングに有益でない限り、リテラルを使用します。
単純なテキスト、フォーマットされたテキスト、またはHTMLテキストをそのまま表示するには、軽量であるため最初にリテラルで始まり、余分なSPANタグを出力しません。
このビデオ を参照して、これらの追加タグについて説明します。
ただし、リテラルにCSSを適用することはできません。Label1.Attributes.Addなどの属性をリテラルに追加することはできません。リテラルはSPANタグで囲まれていないため、コンテナー指向のものは実現できません。
また、多くのASP.NET Webformの人がデフォルトでラベルを選択して、ラベルがたくさんあるとHTMLが重くなる余分なSPANタグを生成することを知らずにテキストを表示するのを見るのは悲しいことです。
asp.netの差分b/wラベルとリテラルコントロール
ほとんどすべての点で、リテラルコントロールはラベルコントロールと同じです。これらのコントロールは両方とも、Webフォームにテキストを表示するために使用されます。 (Textプロパティは、HTMLまたは分離コードで設定できます。)
最大の違いは、Labelコントロールは、レンダリング時にテキストをspan
でラップすることです。 Labelコントロールに適用されるすべてのスタイルは、style
のspan
プロパティを使用してレンダリングされます。
たとえば、次のHTML
<asp:Label ID="Label1" runat="server" Text="Label Text"
ForeColor="Red" Font-Bold="true" ></asp:Label>
としてレンダリングされます
<span id="Label1" style="color:Red;font-weight:bold;">Label Text</span>
リテラルコントロールは周囲のタグを出力しないため、テキストはそのまま表示されます。
たとえば、次のHTML
<asp:Literal ID="Literal1" runat="server"
Text="Literal Control Text"></asp:Literal>
としてレンダリングされます
Literal Control Text
そのため、ラベルコントロールを使用するよりもスタイルを適用する場合は、リテラルコントロールを使用します。このため、リテラルコントロールは、ラベルコントロールと比較すると、軽量のコントロールです。
参考:Literalコントロールクラスの継承階層は(Object => Control => Literal)です。Labelコントロールの場合、階層は(Object => Control => WebControl = >ラベル)