下面是如何使用JavaScript函數來顯示jqGrid的樹。
$(document).ready(function() {
TreeDemo.setupGrid($("#tree"));
});
TreeDemo = {
data: { A: ["A1", "A2"], B: ["B1", "B2"] },
setupGrid: function(grid) {
grid.jqGrid({
colNames: ['Name'],
colModel: [
{ name: 'Name', index: 'Name', width: "250em" }
],
datatype: TreeDemo.treeData,
loadui: "none",
sortname: 'Number',
treeGrid: true,
treeGridModel: "adjacency",
sortorder: "asc"
})
},
treeData: function(postdata) {
var items = postdata.nodeid ? TreeDemo.data[postdata.nodeid] : TreeDemo.data;
var i = 0;
var rows = new Array();
for (val in items) {
var isLeaf = postdata.nodeid != undefined;
rows[i] = {
Name: val,
Id: val,
level: postdata.nodeid ? 1 : 0,
parent: postdata.nodeid || null,
isLeaf: isLeaf ? "true" : "false",
expanded: "false"
}
i++;
}
$("#tree")[0].addJSONData({
Total: 1,
Page: 1,
Records: 2,
Rows: rows
});
}
};
請注意,有很多的選項,你如何做到這一點,我的例子只有一個。
我會得到JSON成JS變種的方法是兩種:
- 寫HTML輔助發射一個短腳本的頁面。
- 編寫一個操作,如果由於某種原因無法將數據內聯,則返回
JavaScriptResult
以獲取文件中的數據。
您使用.NET JavaScript序列化程序創建JSON。以MVC源代碼中的JsonResult.ExecuteResult
爲例。
我看到JsonResult.ExecuteResult直接輸出到ASP.NET響應緩衝區。所以我必須在我想讓它在視圖中發射的時候調用它,對吧? – RationalGeek
不要*使用*'JsonResult.ExecuteResult'。我只是將它作爲使用內置JSON序列化程序的示例。親自使用它,並根據需要隨字符串做任何事情。 –