我已经搜索了dojo文档,堆栈溢出,以及使用firebug彻底探索了EnhancedGrid对象本身,我找不到答案。
我有一个增强的网格,我填充了用户要排序的值,基本上创建了一个选择集(使用indirectSelection插件)。然后他们有一个按钮可以缩放到地图上的选定项目。
问题是,在对列进行排序时,它不会更改商店本身中项目的顺序,我在每个项目中保留一个对象,告诉我如何放大地图,所以我没有将grid.selection.selected
数组索引与store._arrayOfAllItems
索引进行协调的方法。
编辑:请注意,我使用的是Dojo 1.6,因为它已经融入了我正在使用的API中。
答案 0 :(得分:0)
您可以将idProperty设置为Store,例如:
var employeeStore = new dojo.store.Memory({data:employees, idProperty: "name"});
然后您可以使用get方法操作具有该id属性的商店:
// add a new employee
employeeStore.add({name:"George", department:"accounting"});
// remove Bill
employeeStore.remove("Bill");
// retrieve object with the name "Jim"
var jim = employeeStore.get("Jim");
而不是使用store._arrayOfAllItems
。这样,您的grid.selection
对象将包含您的id的值而不是数组索引(假设您的网格的store属性是您的商店)。这是我猜测的部分,因为我确信新道场的dgrid就是这样做的,我鼓励你使用BTW。
希望它有所帮助,