我有一个主存储,比如:
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中的引用child不起作用,因为dojo在渲染kidsGrid时抛出错误。
其次,假设我想删除kidsStore中的一个项目(行或孩子),我希望这个孩子也能从mainStore中删除。有有效的好的解决方案吗?
首先,ItemFileWriteStore和JsonRestStore不能使用相同的结构。IFWS只使用数组,而JRS则混合使用数组/对象。
恐怕你将不得不亲自处理这些关系。例如,在编辑子项后单击validate时,您将循环浏览它们,然后更新JRS,然后更新JRS.save()