ASP.NET技巧-正确使用Label控件
2008-03-09 19:41
316 查看
ASP.NET技巧-正确使用Label控件
原文地址: http://haacked.com/archive/2007/02/15/ASP.NET_Tip_-_Use_The_Label_Control_Correctly.aspx Scott Watermasysk 在他的博客上有一系列的 Quick Tips for ASP.NET 。这仅仅是其中的一篇。我非常期待能够看到这个系列的后续文章。
然而,关于Never use the ASP.NET Label control,我的看法稍稍与他不同。我希望将其重写为:
Never use the ASP.NET Label control when a Literal would do.
问题不是Label控件。问题是只是仅仅把Label控件看成是Literal控件。
Label控件有一个特殊用法,作为表单输入的标签。例如,下面的图片中有一个文本标签和一个文本框。
让我们看看如何使用Literal控件来创建这个简单的表单(注意我从一个资源文件中获取值,因为我们都希望支持国际化,对吧?但是这也指出了我为什么使用一个实际的控件而不只是直接输入标签)。
<asp:Literal id="label" Text="<%$ Resources:UserName %>"
runat="server" /> <asp:TextBox id="textbox" runat="server"/>
当你点击Username上的单词时发生了什么?什么也没有发生。如果此时靠近literal的Textbox得到焦点是不是非常好呢?下面是解决方法:
现在,我们已经将label和文本控件关联在一起。底层的HTML看起来就像这样(为了讨论而做了简化):
<label for="textbox">Username</label> <input type="textbox" name="textbox" value="" />
这将标签Username和文本控件关联起来,因此当我们点击标签时,文本框就会获得焦点。
那么在这里为什么使用Label服务器控件?为什么不直接使用<label /> html标签。
因为你不知道TextBox编译时的客户端id。那么如果这两个控件位于一个页面内部的用户控件内部,又会发生什么呢?此时它们的ID会变得有点奇怪。
后记:
在关于这篇文章的评论中也有非常精彩的讨论,我也摘录了下来。
实际上,你也可以将label和任何其他类型的控件关联起来,而不仅仅是textbox。Dropdown和text area也是如此。
Label另外两个非常重要的属性是AccessKey和Tooltip,它们主要是为了便于访问Label。
而且你也可以使用checkbox控件的text属性,这样它将自动生成一个关联label。
原文地址: http://haacked.com/archive/2007/02/15/ASP.NET_Tip_-_Use_The_Label_Control_Correctly.aspx Scott Watermasysk 在他的博客上有一系列的 Quick Tips for ASP.NET 。这仅仅是其中的一篇。我非常期待能够看到这个系列的后续文章。
然而,关于Never use the ASP.NET Label control,我的看法稍稍与他不同。我希望将其重写为:
Never use the ASP.NET Label control when a Literal would do.
问题不是Label控件。问题是只是仅仅把Label控件看成是Literal控件。
Label控件有一个特殊用法,作为表单输入的标签。例如,下面的图片中有一个文本标签和一个文本框。
让我们看看如何使用Literal控件来创建这个简单的表单(注意我从一个资源文件中获取值,因为我们都希望支持国际化,对吧?但是这也指出了我为什么使用一个实际的控件而不只是直接输入标签)。
<asp:Literal id="label" Text="<%$ Resources:UserName %>"
runat="server" /> <asp:TextBox id="textbox" runat="server"/>
当你点击Username上的单词时发生了什么?什么也没有发生。如果此时靠近literal的Textbox得到焦点是不是非常好呢?下面是解决方法:
<asp:Label id="label" AssociatedControlId="textbox" Text="Username" runat="server" /> <asp:TextBox id="textbox" runat="server" />
现在,我们已经将label和文本控件关联在一起。底层的HTML看起来就像这样(为了讨论而做了简化):
<label for="textbox">Username</label> <input type="textbox" name="textbox" value="" />
这将标签Username和文本控件关联起来,因此当我们点击标签时,文本框就会获得焦点。
那么在这里为什么使用Label服务器控件?为什么不直接使用<label /> html标签。
因为你不知道TextBox编译时的客户端id。那么如果这两个控件位于一个页面内部的用户控件内部,又会发生什么呢?此时它们的ID会变得有点奇怪。
后记:
在关于这篇文章的评论中也有非常精彩的讨论,我也摘录了下来。
实际上,你也可以将label和任何其他类型的控件关联起来,而不仅仅是textbox。Dropdown和text area也是如此。
Label另外两个非常重要的属性是AccessKey和Tooltip,它们主要是为了便于访问Label。
而且你也可以使用checkbox控件的text属性,这样它将自动生成一个关联label。
相关文章推荐
- UltraWebGrid控件在开发ASP.NET项目中的使用方法和技巧(转)
- win7 2008 尚未在 Web 服务器上注册ASP.NET 4.0。为了使网站正确运行,可能需要手动将 Web 服务器配置为使用 ASP.NET 4.0,按 F1 可了解更多详细信息。
- ASP.NET 2.0 Login控件使用技巧(二) - 角色管理
- [ASP.NET学习笔记之四]数据集的使用方法和技巧
- 以下一些使用ASP.NET和VISUAL STUDIO.NET2003的经验和技巧
- VS2012 未能将网站XXX配置为使用ASP.NET 4.5.为了使此网站正确运行.你必须将它手动配置为使用ASP.NET 4.5
- ASP.NET jQuery 食谱22 (jQuery AJAX 基本方法使用和调试技巧)
- 技巧和诀窍:使用ASP.NET 2.0 输出缓存替换的功能实现“甜圈缓存(Donut Caching)”
- 以下一些使用ASP.NET和VISUAL STUDIO.NET2003的经验和技巧
- 将图片插入数据库并使用asp.net读取出来的正确方法
- [转]UltraWebGrid控件在开发ASP.NET项目中的使用方法和技巧
- "[转]以下一些使用ASP.NET和VS.NET2003的经验和技巧," 一文的评论:
- asp.net ajax框架使用技巧之一
- Asp.Net MVC Identity 2.2.1 使用技巧(四)
- 在ASP.NET中使用一个小技巧,把Render重定向到字符串
- ASP.NET数据绑定GridView控件使用技巧
- 27:ASP.NET复习系列- ADO.NET基本知识点-数据集的使用方法和技巧
- 在win 2008 R2环境下如何使用iis7.0正确发布ASP。NET项目
- ASP.NET AJAX Control Toolkit: ModalPopupExtender使用技巧(转)
- ASP.NET中如何正确使用Session