0

我已经搜索了 dojo 文档、堆栈溢出,以及使用 firebug 彻底探索了 EnhancedGrid 对象本身,但我没有找到答案。

我有一个增强的网格,我用值填充用户进行排序并基本上创建一个选择集(使用indirectSelection 插件)。然后,他们有一个按钮可以缩放到地图上的选定项目。

问题是,在对列进行排序时,它不会改变商店本身中项目的顺序,我在每个项目中保留一个对象,告诉我如何在地图上缩放,所以我无法协调带有索引的grid.selection.selected数组store._arrayOfAllItems索引。

编辑:请注意,我坚持使用 Dojo 1.6,因为它已融入我正在使用的 API。

4

1 回答 1

0

查看Dojo 对象存储教程

您可以将 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 值而不是数组索引(前提是您的网格的存储属性是您的存储)。这是我猜测会起作用的部分,因为我确信新的 dojo 的dgrid就是这样做的,顺便说一句,我鼓励您使用它。

希望能帮助到你,

于 2012-08-02T17:30:56.563 回答