ASP.Net: Literal vs Label

Я просто хотел услышать некоторые полномочия о том, когда и где вы должны использовать элемент управления LITERAL над LABEL.

Как я понимаю, разница такова: A LABEL может быть оформлен с помощью добавленных тегов <SPAN>.

Я лично считаю, что добавление тегов <SPAN> в мой HTML очень раздражает и никогда не применяет стили через ASP, и поэтому LITERAL похоже, что нужно использовать большую часть времени... но я ' m касается других соображений или преимуществ использования ЭТИКЕТКИ над ним, о которых я не знаю.

Является ли он на 100% штрафом для замены любого LABEL на LITERAL s, если мы не применяем к ним стили? Нет ли других соображений?

Ответ 1

Да, основное отличие состоит в том, что Literal управляет только визуализацией текста, но Label управляет окружающим его тегами <span> (если вы не используете свойство AssociatedControlID, и в этом случае элемент управления a Label выведите тег <label>).

Итак, ярлыки могут быть стилизованы проще, но если вы просто вставляете текст, литералы - это путь. Литеральные элементы управления также имеют удобное свойство Mode, которое определяет способ рендеринга текста. Вы можете иметь HTML-кодирование или визуализацию без каких-либо изменений или удалить "неподдерживаемые элементы языка разметки".

Если вы не применяете какие-либо стили (например, используя свойство Label CssClass), будет нормально заменять элементы управления Label элементами управления Literal.

Ответ 2

Если у вас есть код, похожий на

<asp:Label EnableViewState="false" ID="Label8" runat="server" 
        AssociatedControlID="txtEmail">Email Address:</asp:Label>

<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>

Оптимально использовать элемент метки, потому что он правильно превратит его в элемент html label с правильным атрибутом for, ориентированным на ваше текстовое поле, так что, если пользователь нажимает на метку, он автоматически устанавливает свой курсор внутри текстового поля.

В противном случае используйте литерал, если текст, заключенный в span, не будет полезен для стилизации css.

Ответ 3

enter image description here

Чтобы отобразить простой текст, форматированный текст или текст HTML, так как это я начну с буквального сначала в качестве его легкого и не выделяю лишние теги SPAN.

Смотрите это видео, в котором демонстрируются те дополнительные теги.

Но мы не можем применить CSS к литералу, мы не можем добавлять такие атрибуты, как Label1.Attributes.Add в литерал. Любые объекты, ориентированные на контейнер, не могут быть достигнуты, поскольку литерал не окружен тегом SPAN.

Также печально, что многие парнеры ASP.NET Webform по умолчанию выбирают ярлык для отображения текста, не зная, что он генерирует дополнительные теги SPAN, которые могут сделать ваш HTML тяжелым, если у вас много ярлыков.

Ответ 4

Разница b/w Ярлык и логический контроль в asp.net

Практически все элементы управления Literal совпадают с элементами управления Label. Оба этих элемента управления используются для отображения текста на веб-форме. (Свойство 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>

Элемент управления Literal не выводит никаких окружающих тегов, поэтому текст отображается так:

Например, следующий HTML

<asp:Literal ID="Literal1" runat="server" 
Text="Literal Control Text"></asp:Literal>

будет отображаться как

Literal Control Text

Итак, если вы хотите применить любые стили к элементу управления Label, используйте элемент управления Literal. Из-за этого контроль Literal является легким контролем веса по сравнению с контролем Label.

FYI: иерархия наследования для класса управления Literal имеет значение (Object = > Control = > Literal), где, как и для элемента управления Label, иерархия (Object = > Control = > WebControl = > Label)