文字控件用于啥,与 asp.net 中的标签控件有啥区别?

Posted

技术标签:

【中文标题】文字控件用于啥,与 asp.net 中的标签控件有啥区别?【英文标题】:What's the Literal control used for and what's the difference to the Label Control in asp.net?文字控件用于什么,与 asp.net 中的标签控件有什么区别? 【发布时间】:2010-10-05 09:21:38 【问题描述】:

asp.net 中使用什么文字控件?它们和标签控件有什么区别?

【问题讨论】:

ASP.Net: Literal vs Label 的可能重复项 【参考方案1】:

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

【讨论】:

【参考方案2】:

它将按字面意思放置您在页面中放置的任何文本。您可以使用它来编写 htmljavascript 或纯文本。

【讨论】:

【参考方案3】:

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

<span>My Label text</span>

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

注意:Label 控件也允许您直接呈现 HTML,但它会将所有文本放入前面提到的 span 标记中。因此,对于呈现较大的 HTML 部分,Literal 控件是可行的方法。

PS:HTML中有一个&lt;label&gt;标签。如果您使用 Label 控件的 AssociatedControlId 属性,它将呈现为 HTML &lt;label&gt; (感谢 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。

【讨论】:

文字呢?不要插入跨度? 不,Literal 控件直接写入您插入的文本,而不更改它。 正确,Literal 控件发出的正是您通过 text 属性设置的内容。 例如,这个标签会很高兴地显示javascript警报,标签控件没有编码/转义: 嗯,asp:label 是相关的。添加 AssociatedControlId 属性,您将获得 【参考方案4】:

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

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

MSDN on AssoicatedControlId

【讨论】:

【参考方案5】:

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

【讨论】:

并使用 AssociatedControlId,它将呈现一个标签标签。在我看来,ASP.NET 中理解最少的控件【参考方案6】:

还需要注意的一点是,如果您只是使用它来显示某些内容并且不需要格式化文本,请使用 Literal 控件。 ViewState 对于 Literal 与 Label 控件相比没有那么重,当您在使用 ViewState 的页面上有许多这样的控件时,它确实会增加您的页面大小。

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

【讨论】:

【参考方案7】: 我们可以在标题标签中使用文字控制,而标签不能在标题标签中使用 标签可用于设置文本框等其他控件的焦点。 而 Literal 只是简单地排列网页上的静态文本

【讨论】:

以上是关于文字控件用于啥,与 asp.net 中的标签控件有啥区别?的主要内容,如果未能解决你的问题,请参考以下文章

asp.net 每个控件的属性有啥作用?

如何在 ASP.NET 用户控件中指定 *.css 文件?

如何在asp.net控件InnerHtml c#中的div标签中使用类

asp.net:子控件的Visible属性啥时候自动设置?

在 asp.net 中处理 Gridview 控件中的文本框?

如何将 javascript 与 asp.net 下拉列表控件一起使用?