在XPages中创建Dojox树网格时出错

Error creating Dojox Tree grid in XPages

本文关键字:网格 出错 树网 Dojox XPages 创建      更新时间:2023-09-26

我一直在尝试在XPages上创建一个树形网格,而在渲染网格时得到"对不起,发生了错误"。

下面的JSON字符串是我想要渲染的:

var data = {"identifier": "name",
 "label": "name",
items: [
    {"name": "Africa", "": "continent", "children": "[
            { "name":"Egypt", "field":"country" },
            { "name":"Kenya", "field":"country", "children":"[
                { "name":"Nairobi", "field":"city" },
                { "name":"Mombasa", "field":"city" } ]"
            ]},
            { "name":"Sudan", "field":"country", "children":"[
                { "name":'Khartoum', "field":"city" }]"
            },
        { "name":'Asia', "field":"continent", "children":"[
            { "name":"China", "field":"country" },
            { "name":"India", "field":"country"},
            { "name":"Russia", "field":"country" },
            { "name":"Mongolia", "field":"country" } ]"
        }
     }
]}

下面的Dojo代码包括上面的var是在onCleintLoad事件- Cleint端:

var jsonStore = new ItemFileWriteStore({data:data});
var layout = [
     {name: "Continent",     field: "continent"},
     {name: "Country",     field: "country"}  
];  
var treeModel = new dijit.tree.ForestStoreModel({
  store: folderStore,
  query: {type:'name'},
  rootId: 'LandRoot',
  rootLabel: 'Land',
  childrenAttrs: ['children']
});
var grid = new dojox.grid.TreeGrid({
  treeModel: treeModel,
  structure: layout,
  showRoot: true 
}, 'treeGrid');
grid.startup();
dojo.connect(window, "onresize", grid, "resize");

通过在每个新类别的开头添加一个新值"level":"0"来解决问题:

{"level": 0,"name": "Africa", "": "continent", "children": "[.....

和在ForestStoreModel中为网格:

var treeModel = new dijit.tree.ForestStoreModel({
  store: folderStore,
  query: {type:'name'},
  rootId: 'LandRoot',
  rootLabel: 'Land',
  childrenAttrs: ['children']
});

我将选择类别项所需的查询属性更改为query: {level:"0"},。这是诅咒错误的行,因为。JSONString中不存在type:'name'