asp:label和html label之间的区别是什么?
我知道第一个是在服务器上呈现的,所以基本上它会返回一个span选项卡,但它有什么用呢?在什么情况下需要使用超文本标记语言标记,在什么情况下需要使用asp:label?我知道如果我把它作为一个ASP控件,我可以通过编程来访问它,但是这两者在设计UI方面有什么区别呢?
发布于 2013-01-13 09:02:22
如果asp:Label将其"AssociatedControlID“属性值设置为页面上表单控件的ID,则在呈现给客户端时,它实际上将呈现为HTML label控件(将"for”值设置为同一控件的客户端ID )。
HTML label控件被严格设计为为表单控件(即输入、选择或文本区域)提供标签/标题(),它向用户描述表单控件的用途(参见https://developer.mozilla.org/en-US/docs/HTML/Element/label)。标签通常(强烈)与使用"for“属性的特定输入相关联,该属性应该是输入的ID。对于那些具有可访问性需求的人来说,这特别有用,因为他们不能仅基于文本和控件的接近程度来解释关系。想象一下,一个表单有几个文本框,但是无法知道每个文本框中需要哪些输入。HTML label控件不用于此上下文之外的常规文本。
如果asp:Label的"AssociatedControlID“属性没有值,则控件将简单地呈现为包含文本的跨度控件。一些开发人员喜欢使用asp:Labels将文本输出到页面上,这使控件具有双重用途(与HTML对应的控件不同)。我个人更喜欢使用asp:字面量来达到这个目的,因为它能让我更好地控制包含的标记。
选择asp:Label而不是原生HTML label控件的原因是,您可以使用服务器端代码轻松地与其交互,例如,更改文本或CssClasses以响应服务器事件,并且您可以输入服务器ID作为"AssociatedControlID“值,该值将自动呈现为客户端" for”值中的客户端ID (例如,显示为"ct100_MainContent_TextBox1“,而不是"TextBox1")。
https://stackoverflow.com/questions/14297572
复制相似问题