一、html页面
<table id="tg" class="easyui-treegrid prive-table"
data-options="iconCls: 'icon-ok',rownumbers: true,animate: true,collapsible:true,fitColumns: true,url: 'treegrid_data2.json',method: 'get',
idField: 'id',treeField: 'name',loadFilter: pagerFilter,
pagination: true, pageSize: 2,
onClickRow: clickTest, pageList: [2,5,10]
">
<thead>
<tr>
<th data-options="field:'name',width:20">Task Name</th>
<th data-options="field:'persons',width:20,align:'right'">Persons</th>
<th data-options="field:'begin',width:20">Begin Date</th>
<th data-options="field:'end',width:10">End Date</th>
<th data-options="field:'progress',width:20,formatter:formatProgress">Progress</th>
<th data-options="field:'id',width:10,formatter:formatOptions">操作</th>
</tr>
</thead>
</table>
二、参数说明
其特性扩展自 datagrid,下列是为 treegrid 增加的特性。
其事件扩展自 datagrid,下列是为 treegrid 增加的事件
方法
三、部分js
// 动态加载查询
function testm(){
$.post('treegrid_data3.json',{id:123},function(data){
$('#tg').treegrid('loadData',data);
},'json');
}
//设置页面分页
function pagerFilter(data){
//alert(data);
if ($.isArray(data)){
// is array
data = {
total: 5,//data.length,
rows: data
}
}
var dg = $(this);
var state = dg.data('treegrid');
var opts = dg.treegrid('options');
var pager = dg.treegrid('getPager');
pager.pagination({
onSelectPage:function(pageNum, pageSize){
opts.pageNumber = pageNum;
opts.pageSize = pageSize;
pager.pagination('refresh',{
pageNumber:pageNum,
pageSize:pageSize
});
dg.treegrid('loadData',data);
}
});
if (!data.topRows){
data.topRows = [];
data.childRows = [];
for(var i=0; i
var row = data.rows[i];
row._parentId ? data.childRows.push(row) : data.topRows.push(row);
}
data.total = (data.topRows.length);
}
var start = (opts.pageNumber-1)*parseInt(opts.pageSize);
var end = start + parseInt(opts.pageSize);
data.rows = $.extend(true,[],data.topRows.slice(start, end).concat(data.childRows));
return data;
}
function formatProgress(value){
if (value){
var s = '<div style="width:100%;border:1px solid #ccc">' +
'<div style="width:' + value + '%;background:#cc0000;color:#fff">' + value + '%' + '</div>'+
'</div>';
return s;
} else {
return '';
}
}
//字段处理
function formatOptions(value,row){
if (value){
var s = '<a href="javascript:alert(' + value + ');" class="opts" id="' + value + '" ><i class="icon-"></i></a> ' +
'<a href="#" class="opts" id="' + value + '" ><i class="icon-"></i></a>';
return s;
} else {
return '';
}
}
四、数据格式
treegrid_data2.json
{
"rows":[
{"id":1,"name":"All Tasks","begin":"3/4/2010","end":"3/20/2010","progress":60,"iconCls":"icon-ok"},
{"id":2,"name":"Designing","begin":"3/4/2010","end":"3/10/2010","progress":100,"_parentId":1,"state":"closed"},
{"id":21,"name":"Database","persons":2,"begin":"3/4/2010","end":"3/6/2010","progress":100,"_parentId":2},
{"id":22,"name":"UML","persons":1,"begin":"3/7/2010","end":"3/8/2010","progress":100,"_parentId":2},
{"id":23,"name":"Export Document","persons":1,"begin":"3/9/2010","end":"3/10/2010","progress":100,"_parentId":2},
{"id":3,"name":"Coding","persons":2,"begin":"3/11/2010","end":"3/18/2010","progress":80},
{"id":4,"name":"Testing","persons":1,"begin":"3/19/2010","end":"3/20/2010","progress":20}
]
}
<table id="tg" class="easyui-treegrid prive-table"
Task Name | Persons | Begin Date | End Date | Progress | 操作 |
---|
二、参数说明
其特性扩展自 datagrid,下列是为 treegrid 增加的特性。
名称 | 类型 | 说明 | 默认值 |
---|---|---|---|
treeField | string | 定义树节点的字段 | null |
animate | boolean | 定义当节点展开或折叠时是否显示动画效果 | false |
名称 | 参数 | 说明 |
---|---|---|
onClickRow | row | 当用户点击一个节点时触发 |
onDblClickRow | 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 | 当用户取消编辑节点时触发 |
名称 | 参数 | 说明 |
---|---|---|
options | none | 返回 treegrid 的options |
resize | options | 设置 treegrid 的尺寸, options 参数包含两个特性: width: treegrid 的新宽度。 height: treegrid 的新高度 |
fixRowHeight | id | 适应指定行的高度 |
loadData | data | 加载 treegrid 的数据 |
reload | id | 重新加载 treegrid 的数据 |
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:DOM 对象,追加到的父节点,如果没有分配,则追加为根节点。 data:数组,节点们的数据 |
remove | id | 移除节点和它的子节点们 |
refresh | id | 刷新指定的节点 |
endEdit | id | 结束编辑节点 |
beginEdit | id | 开始编辑节点 |
cancelEdit | id | 取消编辑节点 |
getEditors | id | 获取指定行的编辑器们。每个编辑器有下列特性: actions:编辑器可以做的动作们。 target:目标编辑器的 jQuery 对象。 field:字段名。 type:编辑器的类型 |
getEditor | options | 获取指定的编辑器, options 参数包含两个特性: id:行节点的 id。(注意:如不生效使用index:id,目前官网文档错误,虽然取id的值,但要用index属性) field:字段名 操作:var t = $('#tg'); |
三、部分js
// 动态加载查询
//字段处理
四、数据格式
treegrid_data2.json
{
"rows":[
]
}