2008-12-09 50 views
2

在asp.net中,包含或不包含id屬性有什麼好處嗎?假設這個問題沒有編程理由,我們需要一個ID。 (我們不是在後面的代碼和客戶端操縱代碼的控制)。總是有一個ID屬性是否有好處?

我個人偏好只有當我有理由操縱控件並需要能夠引用它時才包含Id屬性。所以,我發現自己總是刪除圖像1的Label1等等...

到目前爲止的答案:

  1. 讓他們可以幫助輔助技術。
  2. 讓他們可以使用測試套件
  3. 幫助刪除它們可以對帶寬
  4. 刪除它們的影響使你的智能感知清潔(只是增加了這一項)

回答

2

ID屬性對於使用Quick Test Pro等工具測試您的頁面很有用,對於使用屏幕閱讀工具瀏覽的盲人用戶也很有用。

有一個很好的Hanselminutes播客這個地方討論: http://www.hanselminutes.com/default.aspx?showID=143

+0

我從來沒有想過替代援助技術 – JoshBerke 2008-12-09 21:07:39

+0

我也沒有,直到我聽到播客;) – 2008-12-09 21:09:57

2

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

兩者

「在服務器上設置此屬性(ID) 控件爲您提供了對服務器c的編程 訪問權限ontrol的 屬性,事件和方法。通過在ASP.NET服務器 控件的 開始標記中聲明ID屬性,可以由網絡開發人員 設置此 屬性。如果此屬性是不是服務器控件指定 ,無論是 聲明方式或編程,您 可以通過它的父控件的Controls獲得對控制 參考 財產。」

所以它看起來像ID屬性用於通過代碼訪問控制,但是仍然可以通過代碼訪問沒有ID屬性的控件

0

正確,ID存在的唯一原因是獲取單個對象的句柄,但存在對於刪除VisualStudio爲您創建的自動分配ID絕對沒有任何好處。

你永遠不知道你什麼時候可以得到一個ID,所以我至少會建議保留默認值,如果沒有其他的。

+0

我寧願強迫自己或其他開發人員添加有用的ID。我的第一個程序(在校外)是VB6 exe。我繼承的那個人擁有一切,如Label1 Label2等等......更糟糕的是,他改變了底層的類型,但保持相同的名稱。 Label1 = textbox heh – JoshBerke 2008-12-09 21:05:53

0

基本上只要你喜歡指控制從服務器端,您將需要的ID。您執行的大多數綁定任務都在服務器端。這包括綁定到GridView控件。將消息分配給標籤控件等。

如果您沒有在後面的代碼中使用該控件,那麼您可以省略該ID。但我會一直建議給所有控件賦予有意義的ID。

如果您不分配id並添加一個ID爲「Button1」的控件,則會發生變化,這將與沒有標識的已添加按鈕相沖突。

0

手動編寫HTML時,除非需要,否則不包含任何ID。 對於高負載的站點,如果不在那裏,則會使用較少的帶寬。 考慮到人們通過主要工作去除CSS和JS文件中的空白和註釋(通常在構建時),我會考慮移除未使用的ID標籤以進入同一條船。另外,如果沒有ID,我會假設瀏覽器的DOM構建工作量較少。這一切加起來有點快,頁面傳輸和渲染時間,從長遠來看,這加起來!

0

當您試圖在瀏覽器上查看生成的代碼時(您至少需要時,您需要執行此操作),這些服務器控件上的ID也有幫助。例如,一些我稱爲tbLastName的文本框會被轉換爲類似於ctl001_tbLastName

相關問題