Javascript 复选框在平滑网格中未正确排序

Javascript 复选框在平滑网格中未正确排序,javascript,jquery,html,sorting,slickgrid,Javascript,Jquery,Html,Sorting,Slickgrid,我正在修复一个应用程序中的排序问题,但遇到了一个问题。我正在使用Slick Grid实现我的网格。当前的排序函数(不是我自己编写的)运行良好,但有一个警告。它可以很好地对列进行排序,但在按列排序时,我无法使复选框保留在相应的行中。复选框保留在排序之前最初启用的同一行上,因此,如果用户要执行与所选行关联的许多功能之一,则将在错误的行上执行。请让我知道,如果我需要更详细地阐述这一点,因为如果不观察行为,就有点难以解释 我当前设置的简要示例: checkboxSelector : new Slick.

我正在修复一个应用程序中的排序问题,但遇到了一个问题。我正在使用Slick Grid实现我的网格。当前的排序函数(不是我自己编写的)运行良好,但有一个警告。它可以很好地对列进行排序,但在按列排序时,我无法使复选框保留在相应的行中。复选框保留在排序之前最初启用的同一行上,因此,如果用户要执行与所选行关联的许多功能之一,则将在错误的行上执行。请让我知道,如果我需要更详细地阐述这一点,因为如果不观察行为,就有点难以解释

我当前设置的简要示例:

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();
});
APPLICATION.grid.onSort.subscribe(函数(e,args)
{
var cols=args.sortCols;
APPLICATION.gridData.sort(函数(dataRow1,dataRow2)
{
for(变量i=0,l=cols.length;ivalue2?1:-1))*符号;
如果(结果!=0)
{
返回结果;
}
}
返回0;
});
APPLICATION.grid.invalidate();
APPLICATION.grid.render();
});
我刚接触Slick Grid,已经检查过他们的API,但无法想出任何解决方案。有人知道在按列排序时如何使复选框保留在相应的行中吗

非常感谢您的帮助

谢谢大家!

-Dave F.

dataView.syncGridSelection(网格,真)

我想你可以在这里找到答案,

介意用您的JSFIDLE设置来支持我们吗?例如,在彻底研究了Slick Grid的数据视图API之后,这似乎是一个不错的方法。然而,在我之前写这篇文章的人并没有使用数据视图。他们声明网格如下:APPLICATION.grid=new Slick.grid(“#applicationGrid”、APPLICATION.gridData、APPLICATION.columns、APPLICATION.options);其中APPLICATION.gridData是数据传递到的数组。在本例中,这似乎已经取代了数据视图,实现数据视图将是一项艰巨的任务。我非常感谢你的反馈。还有其他想法吗?