ASP.Net:文字与标签
我只是想听一些权威的时间和地点你应该使用一个LABEL
LITERAL
控制。
据我所知,不同之处在于:可以通过添加的<SPAN>
标签对LABEL
进行样式设置。
我个人发现在我的HTML中添加<SPAN>
标记是非常烦人的,从来没有实际上通过ASP应用样式,所以LITERAL
似乎是什么应该使用大部分时间…但我担心还有其他考虑或利用标签,我不知道。
LITERAL
我们不向他们提供样式,用LITERAL
取代任何LABEL
是否100%好? 有没有其他的考虑?
是的,主要区别在于, Literal
控件只是呈现文本,但Label
控件用<span>
标签包围它(除非使用AssociatedControlID
属性,在这种情况下, Label
控件将呈现<label>
标签)。
所以,标签的样式可以更容易,但如果你只是插入文字,文字是要走的路。 字面控件还有一个方便的属性Mode
来pipe理文本的呈现方式。 您可以将其设置为HTML编码,或者不进行任何更改,或者删除任何“不支持的标记语言元素”。
如果您没有应用任何样式(例如通过使用Label
的CssClass
属性),则可以用Label
控件replaceLabel
控件。
当你有类似的代码
<asp:Label EnableViewState="false" ID="Label8" runat="server" AssociatedControlID="txtEmail">Email Address:</asp:Label> <asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
使用标签元素是最佳select,因为它可以正确地将它转换为html label
元素,而正确的for
属性指向您的文本框,因此,如果用户单击标签,则会自动将其光标置于文本字段中。
否则,使用文字,除非文本包在一个span
将有利于CSS样式。
要显示简单的文本,格式化文本或HTML文本,我将首先作为其轻量级的文字开始,并不会发出额外的SPAN标签。
看到这个video演示有关这些额外的标签。
但是我们不能将CSS应用于文字上,我们不能将Label1.Attributes.Add这样的属性添加到文字上。 任何容器导向的东西都不能实现,因为字面不被SPAN标签包围。
看到很多ASP.NET Webform的人默认select标签来显示文本,而不知道它会生成额外的SPAN标签,如果你有很多的标签,可以使你的HTML很重。
在asp.net中区别b / w标签和文字控制
在几乎所有方面,文字控件都与标签控件相同。 这两个控件都用于在Web窗体上显示文本。 (Text属性可以在HTML或代码隐藏中设置。)
最大的区别在于,Label控件在渲染时将文本包装在一个span
。 任何应用于Label控件的style
都将使用span
的style
属性进行渲染。
例如,下面的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
因此,如果您想将任何样式应用于使用Label控件,则使用Literal控件。 正因为如此,与Label控件相比,Literal控件是一个轻量级的控件。
FYI:Literal控件类的inheritance层次结构是(Object => Control => Literal) ,对于Label控件,层次结构是(Object => Control => WebControl => Label)