什么是Literal控件用于什么,与asp.net中的Label Control有什么区别?

时间:2009-02-04 11:44:45

标签: asp.net controls

asp.net中使用什么Literal控件?它们和Label控件有什么区别?

7 个答案:

答案 0 :(得分:20)

主要区别在于标签控件将span标记添加到您设置的文本(属性)中,允许对其应用样式:

<span>My Label text</span>

Literal 控件允许您呈现任何类型的内容。您可以使用它来呈现脚本,hmtl和任何其他类型的文档内容。它不会更改您在Text属性中提供的字符串。

注意:Label控件允许您直接渲染HTML,但它会将所有文本放在span标记中,如上所述。因此,为了渲染大型HTML部分,可以采用Literal控件。

P.S。: HTML 中有一个<label>标记。如果您使用Label控件的AssociatedControlId属性,它将呈现为HTML <label> (感谢Ray指出这一点。)

例如:

<asp:Label runat="server" id="FirstNameLabel" AssociatedControlId="FirstNameTextBox">
Input First Name:
</asp:Label>
<asp:Textbox runat="server" id="FirstNameTextBox" />

将呈现为:

<label for="FirstNameTextbox" id="FirstNameLabel">Input first name:</label>
<input type="text" id="FirstNameTextbox" name="FirstNameTextBox" />

另请参阅W3学校的here

答案 1 :(得分:4)

还有一点需要注意的是,如果您只是使用它来显示某些内容而不需要格式化文本,请使用Literal控件。使用Literal与Label控件的ViewState并不重,当你在使用ViewState的页面上有很多这样的东西时,它的页面大小确实很大。

我总是问自己,我是否需要应用自定义样式或格式?是的,使用标签。不,使用文字。

答案 2 :(得分:2)

用于在页面上显示文本,显示的文本可以在运行时通过服务器端代码设置。

答案 3 :(得分:2)

标签控件还具有AssociatedControlId属性,该属性将标签与另一个控件相关联。这有用的一个例子是文本框控件。一旦相关联,屏幕阅读器就能更好地提供更好的结果。

另一个例子是带有标签的单选按钮允许您单击标签,并且单选按钮将选择是否设置了AssociatedControlId属性。

MSDN on AssoicatedControlId

答案 4 :(得分:1)

正如splattne所提到的,标签将其文本括在一个范围内,而文字只是一个占位符。但是,要小心对ASP.Net控件的呈现方式进行假设。它可能取决于您使用的用户代理。例如,面板控件在IE中呈现为div,但呈现为Firefox的表格。

答案 5 :(得分:0)

它会在页面上放置任何文本。您可以使用它来编写html,JavaScript或纯文本。

答案 6 :(得分:0)

  • 我们可以在标题标签中使用文字控制,而标签不能用在标题标签
  • 标签可用于将焦点设置在其他控件(如文本框)上。 而Literal只是简单地在网页上编写静态文本