复选框在Slick Grid中排序不正确



我正在修复一个应用程序中的排序问题,但我遇到了一个问题。我正在使用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复选框和过滤问题

最新更新