2011-07-22 40 views
3

jqGrid docs林木格說:「目前的jqGrid可以從服務器返回的數據只工作有一些技巧和文章至極介紹瞭如何使用本地數據的工作。」的jqGrid樹電網與地方數據

不夠公平,但我無法找到這樣的文章。有關我如何實現它的任何提示,最好等於datatype=local

+0

如果你讀一下修改的答案之前,我的答案。 – Oleg

回答

8

大概this老的回答可以幫助你。演示使用jqGrid的最新當前版本,您可以找到here

已更新:現在我寧願使用datatype: "jsonstring",它幾乎與datatype: "local"相同。在這種情況下,需要使用datastr: mydata而不是data: mydata。另外必須使用jsonReader as function。結果將有以下modified demo

可以在下面找到

var mydata = [ 
    { id:"1", name:"Cash", num:"100", debit:"400.00",credit:"250.00", balance:"150.00", enbl:"1", 
     level:"0", parent:"", isLeaf:false, expanded:false, loaded:true }, 
    { id:"2", name:"Cash 1", num:"1", debit:"300.00",credit:"200.00", balance:"100.00", enbl:"0", 
     level:"1", parent:"1", isLeaf:false, expanded:false, loaded:true }, 
    { id:"3", name:"Sub Cash 1", num:"1",debit:"300.00",credit:"200.00", balance:"100.00", enbl:"1", 
     level:"2", parent:"2", isLeaf:true, expanded:false, loaded:true }, 
    { id:"4", name:"Cash 2", num:"2",debit:"100.00",credit:"50.00", balance:"50.00", enbl:"0", 
     level:"1", parent:"1", isLeaf:true, expanded:false, loaded:true }, 
    { id:"5", name:"Bank\'s", num:"200",debit:"1500.00",credit:"1000.00", balance:"500.00", enbl:"1", 
     level:"0", parent:"", isLeaf:false, expanded:true, loaded:true }, 
    { id:"6", name:"Bank 1", num:"1",debit:"500.00",credit:"0.00", balance:"500.00", enbl:"0", 
     level:"1", parent:"5", isLeaf:true, expanded:false, loaded:true }, 
    { id:"7", name:"Bank 2", num:"2",debit:"1000.00",credit:"1000.00", balance:"0.00", enbl:"1", 
     level:"1", parent:"5", isLeaf:true, expanded:false, loaded:true }, 
    { id:"8", name:"Fixed asset", num:"300",debit:"0.00",credit:"1000.00", balance:"-1000.00", enbl:"0", 
     level:"0", parent:"", isLeaf:true, expanded:false, loaded:true } 
    ], 
    grid = $("#treegrid"); 

grid.jqGrid({ 
    datatype: "jsonstring", 
    datastr: mydata, 
    colNames:["Id","Account","Acc Num","Debit","Credit","Balance","Enabled"], 
    colModel:[ 
     {name:'id', index:'id', width:1, hidden:true, key:true}, 
     {name:'name', index:'name', width:180}, 
     {name:'num', index:'acc_num', width:80, align:"center"}, 
     {name:'debit', index:'debit', width:80, align:"right"}, 
     {name:'credit', index:'credit', width:80,align:"right"}, 
     {name:'balance', index:'balance', width:80,align:"right"}, 
     {name:'enbl', index:'enbl', width: 60, align:'center', 
     formatter:'checkbox', editoptions:{value:'1:0'}, 
     formatoptions:{disabled:false}} 
    ], 
    height: 'auto', 
    gridview: true, 
    rowNum: 10000, 
    sortname: 'id', 
    treeGrid: true, 
    treeGridModel: 'adjacency', 
    treedatatype: "local", 
    ExpandColumn: 'name', 
    caption: "Demonstrate how to use Tree Grid for the Adjacency Set Model", 
    jsonReader: { 
     repeatitems: false, 
     root: function (obj) { return obj; }, 
     page: function (obj) { return 1; }, 
     total: function (obj) { return 1; }, 
     records: function (obj) { return obj.length; } 
    } 
}); 

更新2演示的相應代碼:每個人都應該使用parent:"null"parent:null代替parent:""

+0

我有TreeGrid使用本地數據作爲您鏈接的例子。我唯一的問題是本地搜索根本無法工作。有任何想法嗎? – nvrs

+0

我有TreeGrid使用本地數據,如下所示。我唯一的問題是本地搜索根本無法工作。有任何想法嗎?如果我禁用treegrid,搜索按預期正常工作。 – nvrs

+0

@nvrs:你是對的的TreeGrid不能因爲[返回]過濾(https://github.com/tonytomov/jqGrid/blob/v4.1.2/js/grid.base.js#L1418)。 – Oleg