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

Error creating Dojox Tree grid in XPages

我一直在尝试在 XPages 上创建一个树状网格,并且在渲染网格时得到了 "Sorry, an error occurred"。

下面的 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']
});

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