1、树形表格TreeGrid官网:
http://www.trirand.com/jqgridwiki/doku.php?id=wiki:treegrid
2、从后台获取数据显示为树形表格:
通常会在后台定义一个类
publicclass TreeData{
private Integer id;
private String menu;
private String url;
........它们的get与set方法
}
而要使后台传入的数据能够以树形表格显示,需要在类中添加以下变量:
level:number 表示此数据在哪一级,
isLeaf:boolean 表示此数据是否为叶子节点
parent:mixed 表示父节点是哪个,如果当前节点为父节点,则值为null,不是父节点则 为其父节点ID
laoded:boolean 表示是否加载完成,设置为True表示加载完成,不需要在加载
注意:1、一般设置此值为True,这样在点击树节点就不会再次调用后台数据,加载数 据,避免数据重复
expanded: boolean 表示此节点是否展开
因此定义一个表格接收的类
public classTreeData{
private Integer id;
private String menu;
private String url;
privateInteger level;
privateBoolean isLeaf
privateString parent;
private Booleanloaded;
privateBoolean expanded;
........它们的get与set方法
}
注意:
level,isLeaf,parent,loaded,expanded这几个字段保证大小写正确,这几个字段数JqGrid树 形表格默认的
根据数据应该显示在哪个节点给level,isLeaf,parent,loaded,expanded赋值
JqGrid会根据接收的这几个变量的值,显示为树形表格
3、从后台获取数据显示为树形表格实例(jqGrid接收的是后台传入的上述类的列表)
$(document).ready(function(){
jQuery("#list").jqGrid({
treeGrid:true,//w为ture则为树形表格
treeGridModel:"adjacency",
ExpandColumn:"menu",//展开的列
ExpandColClick:true,//树形表格是否展开
url="",//后台action的地址
dataType:"json",
colManes:["id","menu","url"],
colModel[
{ name="id",index:"id",hidden:true },
{ name="menu",index:"menu",hidden:false },
{ name="url",index:"url",hidden:false},
],
page:false,
height:"auto",
viewrecords:true,
caption:"树形表格实例",
jsonReader:{
root:“DataStr”,
repeatitems:false
}
});
});
假设后台返回的Json数据为:
{“DataStr”:[
{ "id":1, "menu":"menu1","url":"url",
"level":"0","parent":null,
"isLeaf":false,"expanded":false,"loaded":true },
{ "id":2, "menu":"menu2", "url":"url2", "level":"1", "parent":1, "isLeaf":true, "expanded":false,"loaded":true },
{ "id":3, "menu":"menu3", "url":"url3", "level":"1", "parent":1, "isLeaf":true, "expanded":false, "loaded":true },
{ "id":4, "menu":"menu4", "url":"url4", "level":"0", "parent":null, "isLeaf":false,"expanded":false, "loaded":true },
{ "id":5, "menu":"menu4", "url":"url4", "level":"1", "parent":4, "isLeaf":true, "expanded":false, "loaded":true},