总是有ID属性有好处吗?

时间:2008-12-09 20:46:13

标签: asp.net

在asp.net中包含或不包含id属性有什么好处?假设这个问题没有编程原因我们需要一个ID。 (我们不会在代码背后或客户端上操纵控件。)

我个人的偏好只是在我有理由操纵控件并且需要能够引用它时才包含Id属性。所以我发现自己总是删除Image1 Label1等...

到目前为止的答案:

  1. 保持它们有助于辅助技术。
  2. 保持它们可以帮助测试套件
  3. 删除它们会对带宽产生影响
  4. 删除它们可以让你的智能感知更清洁(只需添加这个)

6 个答案:

答案 0 :(得分:2)

取自MSDNhttp://msdn.microsoft.com/en-us/library/system.web.ui.control.id.aspx

  

“在服务器上设置此属性(ID)   控件为您提供程序化   访问服务器控件   属性,事件和方法。这个   属性可以由Web开发人员设置   通过声明中的ID属性   打开ASP.NET服务器的标记   控制。如果这个属性不是   为服务器控件指定的   以声明或编程方式,你   可以获得对控件的引用   通过其父控件的控件   属性“。

因此看起来提供了ID属性来通过代码访问控件。但是,您仍然可以通过代码访问没有ID属性的控件。

答案 1 :(得分:2)

拥有ID属性对于使用Quick Test Pro等工具测试页面非常有用。它们对于使用屏幕阅读工具浏览的盲人用户也很有用。

有一个很好的Hanselminutes播客,讨论了这个问题: http://www.hanselminutes.com/default.aspx?showID=143

答案 2 :(得分:0)

是的,ID存在的唯一原因是获取单个对象的句柄,但删除VisualStudio为您创建的自动分配的ID肯定没有任何好处。

你永远不知道什么时候你可以使用ID,所以我至少建议保留默认值。

答案 3 :(得分:0)

基本上,只要您想从服务器端引用控件,就需要id。您执行的大多数绑定任务都在服务器端。这包括绑定到GridView控件。将消息分配给Label控件等。

如果你没有在代码中使用控件,那么你可以省略id。但我总是建议给所有控件提供有意义的ID。

如果您没有分配ID并添加ID为“Button1”的控件,则会发生更改,这将与已添加的没有id的按钮发生冲突。

答案 4 :(得分:0)

手写HTML时,除非我需要,否则我不会在任何内容中包含ID。 对于高负载站点,如果不存在,则使用的带宽 。 考虑到人们通过主要工作从CSS和JS文件中删除空格和注释(通常在构建时),我会考虑删除未使用的ID标签以进入同一条船。另外,如果没有ID,我认为浏览器的DOM构建工作较少。这一切都增加了一点点的页面传输和渲染时间,这从长远来看会增加!

答案 5 :(得分:0)

当您尝试在浏览器上查看生成的代码时,这些ID在服务器控件上也会有所帮助(有时您需要这样做,至少我这样做)。例如,我调用tbLastName的一些文本框将转换为类似ctl001_tbLastName

的内容