2012-07-09 27 views
0

我们正在提供一个能力,用户更改网格记录的订单/位置。为此我们使用拖放。但拖放后记录不会显得肮脏。马克Unmark网格记录脏

因此,是否有任何功能可用于强制标记以及取消标记网格记录为脏?也就是说,迫使它显示/隐藏角落中的红色标记。

我在记录中找到了一个函数 - setDirty()。但这不符合目的。

+0

你的模型是否包含'index'属性?我相信,当你重新排序时,属性会发生变化,如果在模型中定义模型记录应该在拖放时变脏(无论如何都适用于树)。 – Izhaki 2012-07-09 12:16:49

+0

我认为你应该在'drop'事件上设置一个监听器到你的'DragDrop'插件,并且你可以处理所有与订单有关的更改(发送新的位置到服务器等等)。 – 2012-07-09 12:40:18

+0

@Izhaki:商店里有一个索引,但是我没有听说过索引。你能否详细说明你提到的内容? – netemp 2012-07-09 14:14:50

回答

1

我已经完成了一个排序拖放网格。我在数据库上有一个序列列,所以简单地将它包含在我的模型定义中。

然后在GridView的drop事件处理程序,我叫上当进行降所有受影响的记录record.set('sequence', newSequence)。 (我说“所有受影响的记录”,因为无论何时你改变一个记录的顺序,它不仅影响该记录的顺序,例如:如果你将记录从网格的最底部移动到顶部全部记录的序列号在删除的记录后将增加1,它们将全部变脏并需要在数据库上更新)。

使用record.set将显示该记录的序列列是否带有标记脏。

你说你有服务器端更新好,所以我假设你在服务器端执行这种重新排序逻辑,你将不得不将它移回到JS上,我不知道你是否想要去做。

+0

谢谢Geronimo。这正是我们一直在做的。但认为,可以有一些其他更好的方法来做到这一点。看起来,我们必须继续使用新旧秩序的相同逻辑。谢谢你的时间。 – netemp 2012-07-31 08:12:28