排序后重新设计动态样式的 SlickGrid 单元格
好吧,让我更清楚地解释我的场景:
当单元格被编辑时,它会变得“脏”,我通过 javascript 将 CSS 类添加到单元格来以某种方式设置它的样式。
然后,如果用户对网格进行排序,样式就会丢失(我相信是因为所有行都被重新创建),并且我需要一种方法在排序后将样式恢复到适当的单元格/行。
我试图做的是在 data[] 中添加一个名为“status”的条目,并且 onCellChange 我循环遍历 data[] 并将 args.item.Id 与 data[] 中的适当条目相匹配。
grid.onCellChange.subscribe(function (e, args) {
var done = false;
for (var i = 0; i < data.length && !done; i++) {
if (data[i].id == args.item.id) {
data[i].status = "dirty";
done = true;
}
}
}
但是,在 onSort 上我不确定如何将排序后的行与数据数组匹配。 (因为我没有 args.item)我尝试执行选择器语句: $(".slick-row") 重新设置正确单元格的样式,但我无法将行与其在 data[] 中的条目关联起来。
Ok, let me explain my scenario more clearly:
When a cell is edited, it becomes 'dirty' and I style it a certain way by adding a CSS class to the cell via javascript.
Then, if the user Sorts the grid, the styling is lost (I believe because all the rows are recreated) and I need a way to restore the styling to the appropriate cell/row after a Sort.
What I attempted to do is add an entry into data[] called 'status' and onCellChange I loop through data[] and match the args.item.Id to appropriate entry in data[].
grid.onCellChange.subscribe(function (e, args) {
var done = false;
for (var i = 0; i < data.length && !done; i++) {
if (data[i].id == args.item.id) {
data[i].status = "dirty";
done = true;
}
}
}
However, onSort I'm not sure how to match the sorted rows to the data array. (Since I have no args.item) I've attempted to do selector statements:
$(".slick-row")
to restyle the correct cells, but I have no way to associate the rows with their entry in data[].
如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。
绑定邮箱获取回复消息
由于您还没有绑定你的真实邮箱,如果其他用户或者作者回复了您的评论,将不能在第一时间通知您!
发布评论
评论(1)
1) 无需在 onCellChange 处理程序中搜索该项目 - 它可以在“args.item”中找到。
2) 对“数据”数组进行排序不会清除您对#1 中的项目所做的更改。
3)您提到动态设置单元格样式。我没有看到任何代码。如果您的自定义格式化程序是一段查看“item.status”的代码,并且如果它是脏的,则以不同的方式呈现它,那么您无需执行任何额外操作。对数据进行排序并告诉网格重新渲染将保留“脏”单元格样式。
1) There is no need to search for the item in your onCellChange handler - it is available at "args.item".
2) Sorting the "data" array will not wipe out your change to the item in #1.
3) You mention dynamically styling cells. I see no code for that. If your custom formatter is the piece of code that looks at "item.status" and renders it differently if it is dirty, then you don't have to do anything extra. Sorting the data and telling the grid to re-render will preserve the "dirty" cell styles.