Extjs 中id與itemId的區別

   爲了方便表示或是指定一個組件的名稱,我們通常會使用id或者itemId進行標識命名。(推薦儘量使用itemId,這樣可以減少頁面唯一標識而產生的衝突)

id:
       id是作爲整個頁面的Component的唯一標識,這也意味着在整個頁面中只允許有唯一一個名稱的id,同時這裏的Component的id也將變爲element中的id,所以如果出現了兩個,頁面將會出現崩塌變形等等不可以想象的問題。
       而作爲一個組件是必須有自己的唯一標識(id)的,在沒有設置Component的id的時候系統將自動爲組件添加id

itemId:
       itemId是用於container底下的元件的,這也說明itemId只是一個局部的元件標識名稱,在全局上是不需要遵循唯一性的。
   從上面的敘述中可以看出一些使用上需注意的地方
  1. 若你要取得相關的Component 若是屬於container 請設置id

  2. 若是隻屬於某個container 底下的元件,請設置itemId;某些情況下當然你也可以連同id 一起設置,比如需要改變css style,除此之外itmeid 還是優先的選擇

  3. getCmp 以及getComponent 是不一樣的,使用上必須注意,必須搭配id 以及itemid 使用

   如此一來id 與itemid 就會有從屬關係,非必要不需定義id,也不會造成在定義id 時需要編碼避免重覆,而因爲itemid 是屬於某個id 底下的,所以即使itemid 重覆,也可以利用唯一的id 利用Ext.getCmp 取得參照後,在接着使用getComponent 取得所屬itemId 的參照。


怎麼獲取id和itemId的組件和元件(從以上可以明顯的看出,itemId是個局部的元件名稱):

id: Ext.getCmp(id);

itemId:Ext.getCmp(id).getComponent(itemId);


發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章