asp.net中使用什么Literal控件?它们和Label控件有什么区别?
答案 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属性。
答案 4 :(得分:1)
正如splattne所提到的,标签将其文本括在一个范围内,而文字只是一个占位符。但是,要小心对ASP.Net控件的呈现方式进行假设。它可能取决于您使用的用户代理。例如,面板控件在IE中呈现为div,但呈现为Firefox的表格。
答案 5 :(得分:0)
它会在页面上放置任何文本。您可以使用它来编写html,JavaScript或纯文本。
答案 6 :(得分:0)