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


jQuery EasyUI 插件 jQuery EasyUI 插件

擴展自 $.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:字段名。

jQuery EasyUI 插件 jQuery EasyUI 插件