【问题标题】: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 controls


【解决方案1】:

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

【讨论】:

    【解决方案2】:

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

    【讨论】:

      【解决方案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 只是简单地排列网页上的静态文本

          【讨论】:

            猜你喜欢
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 1970-01-01
            • 2014-02-23
            • 2010-11-22
            • 1970-01-01
            相关资源
            最近更新 更多