2011-06-15 80 views
0

当对SlickGrid中的行进行排序时,它们似乎被全部销毁并重新创建,因此失去了可能在运行时添加的CSS类。 (我不自动提交,但在网格上使用Save按钮来保存数据))例如,我想要“脏”的行(即已经编辑但尚未保存)((我不自动提交,但在网格上使用Save按钮来保存数据))以不同方式显示,具体显示“脏”图标。SlickGrid单元样式丢失排序

所以,当一行是“脏”时,它的一个单元格(一个图标列)获得一个CSS类来显示正确的图标。然而,当行被排序时,这会丢失。有没有办法避免在某种排序上创建全新的行?或者用不同的方法来完成这项任务?

谢谢!

回答

1

SlickGrid明确禁止直接操作它创建的DOM元素,但编辑者除外。如果您需要使用CSS类修饰单元格/行,请使用SlickGrid提供的API(自定义格式器,行/单元格元数据,addCellCssStyles等)。这样,他们将坚持重新渲染。

+0

好吧,也许我在这里失去了一些东西。但即使我使用addCellCssStyles和样式行0,在'图标'列中正确显示。然后,我排序。不会将第0行(第一行)的样式设置为静态。当我想要设计风格的行(“脏”),现在是第4行时,不再有正确的风格? – Kevin 2011-06-15 19:12:53

+0

没错。这是SlickGrid数据抽象的一个副作用。 喜欢它或讨厌它,但这是允许其很大灵活性的底层架构。 网格本身并不知道唯一标识的数据元素,只有行。当你重新排序你的数据时,你所做的只是改变网格看到的“行”,并告诉它重新呈现。您在网格上设置的所有样式和选区仍按“行”操作,因此您需要重新映射它们。看看示例#4了解选择重新映射是如何完成的。 – Tin 2011-06-15 19:30:02