免费视频淫片aa毛片_日韩高清在线亚洲专区vr_日韩大片免费观看视频播放_亚洲欧美国产精品完整版

打開APP
userphoto
未登錄

開通VIP,暢享免費(fèi)電子書等14項(xiàng)超值服

開通VIP
dojox.grid.DataGrid 編程篇(2) -- 方法與事件
dojox.grid.DataGrid 組件還提供了一些方法,使用者利用這些方法可以進(jìn)一步豐富表格的表現(xiàn)體驗(yàn)。

1. 獲取、修改任一單元格的數(shù)據(jù):
取得第3行,字段"f3"的值

[javascript] view plaincopy
  1. var grid = dijit.byId("grid1");  
  2. var row = grid.getItem(3);  
  3. // 獲取值  
  4. var value = grid.store.getValue(row, "f3");  
  5. // 修改值  
  6. grid.store.setValue(row, "f3""abc");  
或者直接寫為
[javascript] view plaincopy
  1. var grid = dijit.byId("grid1");  
  2. var row = grid.getItem(3);  
  3. var value = row["f3"];  
注意:默認(rèn)情況下,每次修改值都會導(dǎo)致Grid該行刷新

2. 獲取(取消)選中行
[javascript] view plaincopy
  1. var grid = dijit.byId("grid1");  
  2. var selectedRows = grid.selection.getSelected();  
  3. var value = selectedRows[0]["f3"];  
因?yàn)橹С侄噙x,所以 grid.selection.getSelected 返回的是選中的行數(shù)組。
[javascript] view plaincopy
  1. // 獲得選擇的第一行  
  2. grid.selection.getFirstSelected();  
  3. // 清除所有選中行  
  4. grid.selection.deselectAll();  
  5. // 選中第n行  
  6. grid.selection.select(4);  

3. 設(shè)置單元格焦點(diǎn)
[javascript] view plaincopy
  1. // 設(shè)置第一行,第二列的單元格的焦點(diǎn)  
  2. grid.focus.setFocusIndex(0, 1);  

4. 將某一行顯示在視圖中
[javascript] view plaincopy
  1. // 滾動顯示出第4行  
  2. grid.scrollToRow(3);  

5. 隱藏某一列
[javascript] view plaincopy
  1. // 隱藏第五列  
  2. grid.layout.setColumnVisibility(4, false);  

6. 改變行的顯示 onStyleRow (參數(shù):row對象)
[javascript] view plaincopy
  1. dojo.connect(grid, "onStyleRow"function(row) {  
  2.    // 第二行背景設(shè)為紅色  
  3.    if (row.index == 1) {  
  4.       row.customClasses += " redRow ";  
  5.    }  
  6. });  
  7. grid.resize();  
  8.   
  9. <style type="text/css">  
  10. .redRow tr { background-color: red !important; }  
  11. </style>  


7. 行點(diǎn)擊事件 onRowClick (參數(shù): Event 對象)
[javascript] view plaincopy
  1. dojo.connect(grid, "onRowClick"function(e) {  
  2.    alert(e.rowIndex);  
  3. });  

另外:Enter鍵也能觸發(fā) onRowClick 事件。
不過這里有個Bug,上下鍵移動時(shí),選擇行不會跟隨,這時(shí)候按下Enter時(shí) e.rowIndex === undefined。后面會介紹如何解決這個Bug。
(改進(jìn)的 EnhancedGrid 上下鍵移動時(shí),選擇行會跟隨)

8. 行選擇事件 onSelected (參數(shù): row index)
[javascript] view plaincopy
  1. dojo.connect(grid, "onSelected"function(index) {  
  2.    alert(index);  
  3. });  
如果選擇行發(fā)生變化時(shí)會被觸發(fā)。

9. 單元格點(diǎn)擊事件 onCellClick (參數(shù): Event 對象)
[javascript] view plaincopy
  1. dojo.connect(grid, "onCellClick"function(e) {  
  2.    console.log("[" + e.rowIndex + "," + e.cellIndex + "]");  
  3.    //rowIndex=-1 為表頭  
  4.    if (e.rowIndex < 0) return;  
  5.    e.cellNode.style.backgroundColor = "red";  
  6. });  

10. 全選擇的代碼示例:
  1. <table dojoType='dojox.grid.DataGrid' id='grid1' jsid='js_grid1'   
  2.  style='border:1px #a8a8a8 solid;width:450px;height:200px;' store="getDataStore(10)"  
  3.  canSort='false' editable="true" selectionMode='extended' selectable="false" >  
  4.   <colgroup span="1" noscroll="true"></colgroup>  
  5.   <colgroup span="6"></colgroup>  
  6.  <thead>  
  7.     <tr>  
  8.       <th field="f0" cellStyles="text-align:center;" width="50px" editable="true" cellType="dojox.grid.cells.Bool" alwaysEditing="true">  
  9.         <div style="text-align:center;">  
  10.             <label for="chk">選擇</label><br/><input type="checkbox" id="chk" onclick="changeAll(this)">  
  11.         </div>  
  12.       </th>  
  13.       <th field="f1" cellStyles="text-align:center;" width="100px" >列1</th>  
  14.       <th field="f2" cellStyles="text-align:center;" width="100px" >列2</th>  
  15.       <th field="f3" cellStyles="text-align:center;" width="100px" >列3</th>  
  16.       <th field="f4" cellStyles="text-align:center;" width="100px" >列4</th>  
  17.       <th field="f5" cellStyles="text-align:center;" width="100px" >列5</th>  
  18.       <th field="f6" cellStyles="text-align:center;" width="100px" formatter="addLink">列6</th>  
  19.     </tr>  
  20. </thead>  
  21. </table>  
JavaScript:表頭的Checkbox點(diǎn)擊時(shí)觸發(fā)下面的方法。
[javascript] view plaincopy
  1. function changeAll(checkbox) {  
  2.     var grid = dijit.byId("grid1");  
  3.     for(var i=0, row; (row=grid.getItem(i)); i++) {  
  4.         grid.store.setValue(row, "f0", checkbox.checked);  
  5.     }  
  6. }  
注意:在表格列寬變化時(shí)(即拖拽調(diào)整列寬)會導(dǎo)致Grid重繪,因此上面用 cacheCheck 來保持表頭的Checkbox的checked狀態(tài)。
在 onResizeColumn 實(shí)際中設(shè)置回去。
[javascript] view plaincopy
  1. dojo.connect(grid, "onResizeColumn"function(cellIdx) {  
  2.     dojo.byId("chk").checked = cacheCheck;  
  3. });  


11. 變化通知
當(dāng)使用編輯列的時(shí)候,可以利用數(shù)據(jù)源的變更通知:
[javascript] view plaincopy
  1. grid._isChanged = false;  
  2. dojo.connect(grid.store, "onSet"function(item, attr, oldVal, newVal) {  
  3.     if (oldVal == null)  
  4.         oldVal = "";  
  5.     if (oldVal != newVal) {  
  6.         dojo.byId("divMsg").innerHTML = attr + ":" + oldVal + "->" + newVal;  
  7.         grid._isChanged = true;  
  8.     }  
  9. });  


--  本章結(jié)束 --
本站僅提供存儲服務(wù),所有內(nèi)容均由用戶發(fā)布,如發(fā)現(xiàn)有害或侵權(quán)內(nèi)容,請點(diǎn)擊舉報(bào)。
打開APP,閱讀全文并永久保存 查看更多類似文章
猜你喜歡
類似文章
Dojo Tips and Tricks - InsideRIA
easyui方法擴(kuò)展
Datagrid striped 不工作?
DataGrid開發(fā)一個CRUD應(yīng)用 增刪改查 保存
Merging columns in GridView/DataGrid header
WPF 4 DataGrid中:獲取行號到的rowHeader
更多類似文章 >>
生活服務(wù)
分享 收藏 導(dǎo)長圖 關(guān)注 下載文章
綁定賬號成功
后續(xù)可登錄賬號暢享VIP特權(quán)!
如果VIP功能使用有故障,
可點(diǎn)擊這里聯(lián)系客服!

聯(lián)系客服