jQuery EasyUI 數據網格與樹插件 - Treegrid 樹形網格

擴展自 $.fn.datagrid.defaults。通過 $.fn.treegrid.defaults 重寫默認的 defaults。
樹形網格(treegrid)用於以網格形式顯示分層數據。它是基於數據網格(datagrid)的,並結合了樹視圖(treeview)和可編輯網格。樹形網格(treegrid)允許您創建可定制的、可非同步展開的行,並以多列形式顯示分層數據。

依賴
- datagrid
用法
在 HTML 標記中創建樹形網格(treegrid)。在大多數情況下,樹形網格(treegrid)遵循與數據網格(datagrid)相同的結構和格式。
<table id="tt" class="easyui-treegrid" style="width:600px;height:400px" data-options="url:'get_data.php',idField:'id',treeField:'name'"> <thead> <tr> <th data-options="field:'name',width:180">Task Name</th> <th data-options="field:'persons',width:60,align:'right'">Persons</th> <th data-options="field:'begin',width:80">Begin Date</th> <th data-options="field:'end',width:80">End Date</th> </tr> </thead> </table>
使用 javascript 創建樹形網格(treegrid)。
<table id="tt" style="width:600px;height:400px"></table>
$('#tt').treegrid({ url:'get_data.php', idField:'id', treeField:'name', columns:[[ {title:'Task Name',field:'name',width:180}, {field:'persons',title:'Persons',width:60,align:'right'}, {field:'begin',title:'Begin Date',width:80}, {field:'end',title:'End Date',width:80} ]] });
屬性
該屬性擴展自數據網格(datagrid),下麵是為樹形網格(treegrid)添加的屬性。
名稱 | 類型 | 描述 | 默認值 |
---|---|---|---|
idField | string | 定義標識樹節點的鍵名字段。必需。 | null |
treeField | string | 定義樹節點的字段。必需。 | null |
animate | boolean | 定義當節點展開或折疊時是否顯示動畫效果。 | false |
loader | function(param,success,error) | 定義如何從遠程伺服器加載數據。返回 false 則取消該動作。該函數有下列參數: param:要傳遞到遠程伺服器的參數對象。 success(data):當檢索數據成功時調用的回調函數。 error():當檢索數據失敗時調用的回調函數。 |
json loader |
loadFilter | function(data,parentId) | 返回要顯示的過濾數據。 |
事件
該事件擴展自數據網格(datagrid),下麵是為樹形網格(treegrid)添加的事件。
名稱 | 參數 | 描述 |
---|---|---|
onClickRow | row | 當用戶點擊一個節點時觸發。 |
onDblClickRow | row | 當用戶雙擊一個節點時觸發。 |
onClickCell | field,row | 當用戶點擊一個單元格時觸發。 |
onDblClickCell | field,row | 當用戶雙擊一個單元格時觸發。 |
onBeforeLoad | row, param | 當加載數據的請求發出前觸發,返回 false 則取消加載動作。 |
onLoadSuccess | row, data | 當數據加載成功時觸發。 |
onLoadError | arguments | 當數據加載失敗時觸發,arguments 參數和 jQuery.ajax 的 'error' 方法一樣。 |
onBeforeExpand | row | 節點展開前觸發,返回 false 則取消展開動作。 |
onExpand | row | 當節點展開時觸發。 |
onBeforeCollapse | row | 節點折疊前觸發,返回 false 則取消折疊動作。 |
onCollapse | row | 當節點折疊時觸發。 |
onContextMenu | e, row | 當右鍵點擊節點時觸發。 |
onBeforeEdit | row | 當用戶開始編輯節點時觸發。 |
onAfterEdit | row,changes | 當用戶完成編輯時觸發。 |
onCancelEdit | row | 當用戶取消編輯節點時觸發。 |
方法
很多方法需要一個名為 'id' 的參數,該參數表示樹節點的值。
名稱 | 參數 | 描述 |
---|---|---|
options | none | 返回樹形網格(treegrid)的選項(options)。 |
resize | options | 設置樹形網格(treegrid)的尺寸, options 參數包含兩個屬性: width:樹形網格(treegrid)的新寬度。 height:樹形網格(treegrid)的新高度。 |
fixRowHeight | id | 固定指定行的高度。 |
loadData | data | 加載樹形網格(treegrid)的數據。 |
load | param | 加載並顯示第一頁。該方法自版本 1.3.4 起可用。 代碼實例: // load and send some request parameters $('#tg').treegrid('load', { q: 'abc', name: 'name1' }); |
reload | id | 重新加載樹形網格(treegrid)的數據。如果傳遞了 'id' 參數,則重新加載樹的指定行,否則重新加載樹的所有行。 代碼實例: $('#tt').treegrid('reload', 2); // reload the row which value is equals to 2 $('#tt').treegrid('reload'); // reload the all rows $('#tt').treegrid('reload', {id:2, q:'abc'}); // reload the specified row with 'q' parameter passing to server |
reloadFooter | footer | 重新加載底部數據。 |
getData | none | 獲取加載的數據。 |
getFooterRows | none | 獲取底部數據。 |
getRoot | none | 獲取根節點,返回節點對象。 |
getRoots | none | 獲取根節點,返回節點數組。 |
getParent | id | 獲取父節點。 |
getChildren | id | 獲取子節點。 |
getSelected | none | 獲取選中的節點並返回它,如果沒有選中節點則返回 null。 |
getSelections | none | 獲取所有選中的節點。 |
getLevel | id | 獲取指定節點的層級。 |
find | id | 找到指定節點並返回該節點數據。 |
select | id | 選擇節點。 |
unselect | id | 取消選擇節點。 |
selectAll | none | 選擇所有節點。 |
unselectAll | none | 取消選擇所有節點。 |
collapse | id | 折疊節點。 |
expand | id | 展開節點。 |
collapseAll | id | 折疊所有的節點。 |
expandAll | id | 展開所有的節點。 |
expandTo | id | 從根部展開一個指定的節點。 |
toggle | id | 切換節點的展開/折疊狀態。 |
append | param | 追加一些子節點到一個父節點,'param' 參數包括下列屬性: parent:父節點的 id,如果沒有分配,則追加為根節點。 data:數組,節點的數據。 代碼實例: // append some nodes to the selected row var node = $('#tt').treegrid('getSelected'); $('#tt').treegrid('append',{ parent: node.id, // the node has a 'id' value that defined through 'idField' property data: [{ id: '073', name: 'name73' }] }); |
insert | param | 在指定節點的前邊或後邊插入一個節點,'param' 參數包括下列屬性: before:前邊插入的節點的 id 值。 after:後邊插入的節點的 id 值。 data:新的節點數據。 代碼實例: // insert a new node before the selected node var node = $('#tt').treegrid('getSelected'); if (node){ $('#tt').treegrid('insert', { before: node.id, data: { id: 38, name: 'name38' } }); }該方法自版本 1.3.1 起可用。 |
remove | id | 移除節點和它的子節點。 |
pop | id | 彈出節點並在移除該節點後返回包含其子節點的節點數據。該方法自版本 1.3.1 起可用。 |
refresh | id | 刷新指定的節點。 |
update | param | 更新指定的節點。'param' 參數包括下列屬性: id:表示要被更新的節點的 id。 row:新的行數據。 代碼實例: $('#tt').treegrid('update',{ id: 2, row: { name: 'new name', iconCls: 'icon-save' } });該方法自版本 1.3.1 起可用。 |
beginEdit | id | 開始編輯節點。 |
endEdit | id | 結束編輯節點。 |
cancelEdit | id | 取消編輯節點。 |
getEditors | id | 獲取指定行的編輯器。每個編輯器有下列屬性: actions:編輯器可以做的動作。 target:目標編輯器的 jQuery 對象。 field:字段名。 type:編輯器的類型。 |
getEditor | param | 獲取指定的編輯器,param 參數包含兩個屬性: id:行節點的 id。 field:字段名。 |
