如何从主dojo存储创建较小的dojo存储并保持同步?

时间:2012-02-24 02:47:28

标签: dojo dojox.grid

我有一个大师店,如:

var data = {

   identifier: "pkid",
   items: [ {pkid: 3456, name: "Tom", kids: [ {pkid: 3459, kidname: "Jenny"}, {pkid: 45698, kidname: "Jimmy"} ]
   }

   var mainStore = new ItemFileWriteStore({data: data});  

   var mainGrid = new var grid = new dojox.grid.DataGrid({
        id: 'grid',
        store: store,
        structure: layout,
        rowSelector: '20px'},
      document.createElement('div'));

    /*append the new grid to the div*/
    dojo.byId("maingridDiv").appendChild(grid.domNode);

    /*Call startup() to render the grid*/
    grid.startup();

   var selectedRow = mainGrid.getItem(0);

   var kids = mainStore.getValues(selectedRow, "kids");

var kidsData =

{

   identifier: "pkid",
   items: kids
   }

  var kidsStore = new ItemFileWriteStore({data: kidsData});

  var kidsGrid = ........
         store: kidsStore,
      ..............

首先,kidsData中的引用子节点不起作用,因为在呈现kidsGrid时dojo会抛出错误。

其次假设我想在kidsStore中删除一个项目(行或孩子),我希望这个孩子也可以从mainStore中删除。有一个好的解决方案吗?

1 个答案:

答案 0 :(得分:0)

首先,ItemFileWriteStore和JsonRestStore不能使用相同的结构。 IFWS仅使用数组,而JRS使用数组/对象的混合。

我担心你必须亲自管理这些关系。例如,在编辑孩子后单击验证时,您将遍历它们,然后更新JRS,然后更新JRS.save()