Slickgrid:单元格中输入的值在移出单元格后消失

问题描述

在Slickgrid单元格中,我单击并输入一个值。一旦我使用鼠标移出该单元格,输入的值就会消失。但是,如果我在单元格中输入值并跳出,则该值将保留在单元格中。我想知道是否应该手动处理。

我正在呼叫的

OnClick事件

grid.updateRow(grid.getDataItem(args.row));
grid.invalidate();
grid.render();

谢谢, 阿莎

解决方法

您做错了事,updateRow()参数是网格中的行索引,但您传递的是项目对象,因此即使我没记错,updateRow也只能正常工作用于重新呈现或刷新特定的行索引,它不是用于更新数据,而是用于呈现目的(也许命名令人困惑)。

我个人仅使用SlickGrid DataView,并且用于更新项目的函数有所不同,您可以在其他堆栈溢出答案Change slickgrid cell data after edit

中了解如何实现

如果您使用的是网格对象(如我在前面引用的另一个SO答案中所写),那么它将是

grid.invalidateRow(args.row);
data[args.row][grid.getColumns()[args.cell].field] = a.msg;
grid.render();

我个人总是使用SlickGrid DataView,因为它更加用户友好,并且具有很多好处,例如数据分组和许多其他功能。再次看看我在上一段中写的另一个SO答案,那是正确的方法