Answers:
是的,主要区别是Literal
控件仅呈现文本,但Label
控件用<span>
标签将其包围(除非您使用该AssociatedControlID
属性,否则Label
控件将呈现<label>
标签)。
因此,标签的样式可以更容易,但是如果您只是插入文本,则可以使用文字。文字控件还具有一个方便的属性Mode
,可控制文本的呈现方式。您可以对其进行HTML编码,也可以对其进行呈现而无需进行任何更改,也可以删除任何“不受支持的标记语言元素”。
如果你未施加任何样式(例如,通过使用Label
的CssClass
属性),这将是罚款,以取代Label
与对照Literal
控制。
Label
当您需要HTML <label>
元素时,应始终使用ASP.Net 控件。除此之外,Labels可以在之间渲染文本<spans>
,而Literals则不能,而Literals可以更好地控制文本的渲染方式。这两个控件上都没有特殊事件,并且它们的内容可以通过完全相同的方式(通过Text
属性)在代码隐藏中进行访问。
Label
控件,则可AssociatedControlID
以为属性添加标签所关联的复选框或单选按钮的ID。这样,您可以单击标签,关联的控件将被激活。增大可单击目标区域的范围也将使用户界面更易于使用。
当你有类似的代码
<asp:Label EnableViewState="false" ID="Label8" runat="server"
AssociatedControlID="txtEmail">Email Address:</asp:Label>
<asp:TextBox ID="txtEmail" runat="server"></asp:TextBox>
最好使用label元素,因为它将正确地将其变成具有针对您的文本框label
的正确for
属性的html 元素,这样,如果用户单击标签,它将自动将其光标设置在文本字段内。
否则,请使用文字,除非使用a span
换行,这对css样式很有帮助。
要显示简单的文本,带格式的文本或HTML文本,我将首先使用文字,因为它是轻量级的,并且不会发出多余的SPAN标签。
观看此视频,演示有关这些额外标签的信息。
但是我们不能在文字上应用CSS,也不能在文字上添加Label1.Attributes.Add之类的属性。任何面向容器的事情都无法实现,因为文字没有被SPAN标记包围。
这也是痛心地看到很多ASP.NET网络表单家伙的默认选择标签显示的文本不知道它会产生额外的SPAN标签,它可以使你的HTML沉重,如果你有很多的标签。
asp.net中的黑白标签和文字控制
在几乎所有方面,文字控件都与标签控件相同。这两个控件都用于在Web窗体上显示文本。(可以在HTML或后面的代码中设置Text属性。)
最大的区别在于,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控件类的继承层次结构是(Object => Control => Literal),其中对于Label控件,层次结构是(Object => Control => WebControl => Label)
mode="PassThrough"
:techrepublic.com/blog/software-engineer/...