今天 搞 这个tree弄了半天没出数据,后来又 深入研究了一下 官网给的php的例子,本来确实看不懂,
静下心来研究了一下,终于搞懂了
先看一下 成果:
下面贴代码:
$("#treegrid").jqGrid({
treeGrid: true,
treeGridModel: 'adjacency',
ExpandColumn: 'name',
ExpandColClick: true,
url: 'tree.json',
datatype: 'json',
colNames: ["管理选项"],
colModel: [{
name: 'name',
index: 'name'
}],
pager: "false",
height: 'auto',
width: '210',
viewrecords: true,
// caption: 'none',
jsonReader: {
root: "rows",
total: "total",
repeatitems: true
}
});
<table id="treegrid" style="width: 100%">
</table>
个人感觉,到此为止都是易事, 难就难再 服务器返回的数据格式, 我值研究了 json数据,
下面贴出数据:
{
"total":11,
"page":1,
"records":11,
"rows":[
{
"id": 1,
"cell":[
"所有文件夹",
0,
null,
false ,
true
]
},
{
"id":10,
"cell":["还asd原",1,1,false,false]
}
,
{
"id": 2,
"cell":[
"我的笔记",
0,
null,
false,
false
]
}, {
"id": 3,
"cell":[
"InfoPath",
1,
2,
true,
true
]
}, {
"id": 4,
"cell":[
"SharePoint",
1,
2,
true,
true
]
}, {
"id": 5,
"cell":[
"WorkFlow",
1,
2,
true,
false
]
},
{
"id": 6,
"cell":[
"草稿",
0,
null,
true,
false
]
}, {
"id": 7,
"cell":[
"我的任务",
0,
null,
true,
false
]
}
, {
"id": 8,
"cell":[
"已删除",
0,
null,
false,
false
]
},
{
"id":9,
"cell":["",1,8,false,false]
},
{
"id":11,
"cell":["还原",0,null,false,false]
},
{
"id":9,
"cell":["还原",0,null,false,false]
}
]
}
我着重说一下 cell 内的第一个 false/true 的意义.
这个的意思就是 是否本节点 还有子节点, 如果配置为 false,那么就是说他有 子节点, 当点击这个节点的时候,
js会判断 目前 这个节点 是否含有子节点,如果有 ,那么就不发送请求,如果没有子节点.就会发送ajax请求, 来请求 子节点.
至于最后一个 true/false是啥意思,我还没弄明白,
有高手知道的可以告诉我啊.
对了,在解释一下 cell 里面 数字的含义.
就拿 id=1 和id=2的 两个节点来说明:
id=1 的cell 是这样配置的: 第一个引号内的文字,就是 js脚本内定义的colModel,一一对应的. 0 就是顶级节点,1下一集节点,以此类推,
null 是 父节点的id号, 但是这个父节点id要在 其 父节点下面来声明(说的我都糊涂了,用图证明吧
代码:
{
"total":11,
"page":1,
"records":11,
"rows":[
{"id":1,"cell":["sss1",0,null,false,false]},
{"id":2,"cell":["sss2",0,null,true,false]},
{"id":3,"cell":["sss3",1,1,true,false]}
]
}
效果是这样的: 虽然在 id=3的节点 声明了 父节点是id为1的节点,但是当 展开sss1的时候,却发生如图的效果.
下面来看一下,换一下 节点的位置:
代码:
{
"total":11,
"page":1,
"records":11,
"rows":[
{"id":1,"cell":["sss1",0,null,false,false]},
{"id":3,"cell":["sss3",1,1,true,false]},
{"id":2,"cell":["sss2",0,null,true,false]}
]
}
),否则不起作用.我也不明白为啥.
上面的都是我 个人实践所得所想,哪里说得不对,希望高手指出….