2012-08-01 41 views
0

我已经搜索了dojo文档,堆栈溢出以及使用萤火虫彻底探究了EnhancedGrid对象本身,但我找不到答案。将dojox.grid.EnhancedGrid中已排序或已移除的行与dojo.data.ItemFileWriteStore进行比较

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

的问题是,排序列时,它不会改变在卖场本身,我保持,告诉我如何在地图上放大每个项目内的对象的项目的顺序,所以我有没有办法调和grid.selection.selected阵列指数和store._arrayOfAllItems指数。

编辑:请注意,我坚持使用道场1.6,因为它的烤到我使用的API。

回答

0

看一看Dojo Object Store Tutorial

您可以将idProperty设置为存储例如:

// 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

var employeeStore = new dojo.store.Memory({data:employees, idProperty: "name"}); 

然后你可以用id属性使用GET方法是这样操作店。这样你的grid.selection对象将包含你的ID值而不是数组索引(假设你的网格的商店属性是你的商店)。这是我猜测会发挥作用的部分,因为我确信新的道场的dgrid这样做,我鼓励你使用它。

希望它有帮助,

+0

我明白你是什么意思,这是一个更好的方式来访问商店中的项目。在道场1.6是'store.fetchItemByIdentity()' 是'idProperty' 1.7事情吗?我尝试添加这一点,我的'grid.selection'仍然作为填充'[真,假,真,真,假]' – mbuna 2012-08-02 19:44:37

+0

我能得到什么,我需要增加一个ID列到网格,并使用'道场。查询(“#queryGrid .dojoxGridRowSelected [idx $ = \”1 \“]”)'查找选定行的ids,以与商店进行比较。不是很漂亮,但现在就完成了。感谢您的帮助,这是我的第一篇文章,我允许你投票吗?它指出我在正确的方向:P – mbuna 2012-08-02 23:37:38

+0

哈哈,不客气@mbuna。这也是我的第一篇文章。所以我不确定是否:)。 idProperty在1.7以前为我工作过。 – eburgos 2012-08-04 21:26:20