2012-02-24 106 views
1

我有一个主店,如:如何从主dojo商店创建较小的dojo商店并保持同步?

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时抛出错误。

其次假设我要删除kidsStore项目(行或孩子),我想那小子从mainStore也被删除。有没有很好的解决方案?

+0

**我不能帮你的所有的**,但让我们来看看[在jsfiddle](http://jsfiddle.net/m6g9L/) 你的一些代码不正确。可能会有所帮助。 – OammieR 2012-02-24 07:57:43

回答

0

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

恐怕你必须手工管理关系。例如,编辑后的孩子上验证一下时,你会通过他们循环,然后更新JRS,然后JRS.save()