1. 程式人生 > >ExtJS4新發現04_grid 單擊事件

ExtJS4新發現04_grid 單擊事件

EXTJS GRID 中 單擊行和單元格獲得行或者單元格的內容(資料) 

Js程式碼  收藏程式碼
  1. grid.addListener('cellclick',cellclick);  
  2. function cellclick(grid, rowIndex, columnIndex, e) {   
  3. var record = grid.getStore().getAt(rowIndex); //Get the Record 
  4. var fieldName = grid.getColumnModel().getDataIndex(columnIndex); //Get field name 
  5. var data = record.get(fieldName);   
  6. Ext.MessageBox.alert('show','當前選中的資料是'+data);   
  7. }  


------------------------------------------------------------------------------ 
Js程式碼  收藏程式碼
  1. grid.on('mouseover',function(e){//新增mouseover事件
  2.  var index = grid.getView().findRowIndex(e.getTarget());//根據mouse所在的target可以取到列的位置
  3.  if(index!==false){//當取到了正確的列時,(因為如果傳入的target列沒有取到的時候會返回false)
  4.   var record = store.getAt(index);//把這列的record取出來
  5.   var str = Ext.encode(record.data);//組裝一個字串,這個需要你自己來完成,這兒我把他序列化
  6.   var rowEl = Ext.get(e.getTarget());//把target轉換成Ext.Element物件
  7.   rowEl.set({  
  8.    'ext:qtip':str  //設定它的tip屬性
  9.   },false);  
  10.  }  
  11.   });  

--------------------------------------------------------------------------------- 


Js程式碼  收藏程式碼
  1.   listeners: {  
  2. 'cellclick':function(grid,rowIndex,columnIndex,e ){ }   
  3. }  
  4. //這是單擊grid單元格時,觸發的事件


Js程式碼  收藏程式碼
  1. grid.getView().getCell(rowIndex,columnIndex).style.background-color="#FF6600";   
  2. grid.getView().getCell(rowIndex,columnIndex).style.color="#FF6600";   
我要改變都是整個背景色,不是光是字的顏色。還有怎麼能點一個單元格時候,讓上次的點的單元格顏色恢復到原來呢??? 
把表格重新整理下可以把以前單擊而改變的顏色還原,grid.getView().refresh(); 然後再讓這次單擊的單元格變色。 
Js程式碼  收藏程式碼
  1. grid.getView().refresh();   
  2. grid.getView().getCell(rowIndex,columnIndex).style.backgroundColor="#FF9999";