我正在修复一个应用程序中的排序问题,但我遇到了一个问题。我正在使用SlickGrid来实现我的网格。当前的排序函数(不是我自己编写的)运行良好,只有一个警告除外。它会对列进行很好的排序,但在按列排序时,我无法使我的复选框保留在相应的行中。复选框保留在排序前最初所在的行上,因此,如果用户要执行与所选行相关的众多功能中的一个,则会在错误的行上执行。如果我需要更详细地阐述这一点,请告诉我,因为如果不观察行为,很难解释。
我当前设置的简要示例:
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,但无法找到任何解决方案。有人知道在按列排序时如何使我的复选框与相应的行保持一致吗?
非常感谢您的帮助。
谢谢!
-Dave F.
dataView.syncGridSelection(grid,true)
我想你可以在这里找到答案,Slickgrid复选框和过滤问题