【发布时间】:2026-01-22 18:15:02
【问题描述】:
我正在修复我们的一个应用程序中的排序问题,但我遇到了问题。我正在为我的网格实现使用 Slick Grid。当前的排序功能(不是我自己编写的)工作正常,除了 1 个警告。它会对列进行很好的排序,但是在按列排序时,我无法让我的复选框保持在其各自的行中。复选框保留在排序之前它们最初所在的同一行,因此如果用户要执行与被选中的行相关的众多功能之一,它将在错误的行上执行。如果我需要更详细地说明这一点,请告诉我,因为如果不观察行为就很难解释。
我当前设置的简要示例:
checkboxSelector : new Slick.CheckboxSelectColumn({
cssClass: "slick-cell-checkboxsel",
}),
columns : [{
id : "name",
name : NAME,
field : "name",
width : 300,
editor : Slick.Editors.Text,
sortable : true
我还有几列,但这就是我的行的样子。我会有一个复选框,然后是一个名称字段,然后是另一个列,等等。
现在是我的排序方法:
APPLICATION.grid.onSort.subscribe(function (e, args)
{
var cols = args.sortCols;
APPLICATION.gridData.sort(function (dataRow1, dataRow2)
{
for (var i = 0, l = cols.length; i < l; i++)
{
var field = cols[i].sortCol.field;
var sign = cols[i].sortAsc ? 1 : -1;
var value1 = dataRow1[field], value2 = dataRow2[field];
var result = (value1 == value2 ? 0 : (value1 > value2 ? 1 : -1)) * sign;
if (result != 0)
{
return result;
}
}
return 0;
});
APPLICATION.grid.invalidate();
APPLICATION.grid.render();
});
我是 Slick Grid 的新手,已经检查了他们的 API,但无法提出任何解决方案。有谁知道如何让我的复选框在按列排序时保持在其各自的行中?
非常感谢任何帮助。
谢谢!
-戴夫 F.
【问题讨论】:
-
介意用你的 JSFiddle 设置支持我们吗?以one 为例。
标签: javascript jquery html sorting slickgrid