今天 搞 這個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]}
]
}
),否則不起作用.我也不明白為啥.
上面的都是我 個人實踐所得所想,哪里說得不對,希望高手指出….