Javascript 复选框在平滑网格中未正确排序
我正在修复一个应用程序中的排序问题,但遇到了一个问题。我正在使用Slick Grid实现我的网格。当前的排序函数(不是我自己编写的)运行良好,但有一个警告。它可以很好地对列进行排序,但在按列排序时,我无法使复选框保留在相应的行中。复选框保留在排序之前最初启用的同一行上,因此,如果用户要执行与所选行关联的许多功能之一,则将在错误的行上执行。请让我知道,如果我需要更详细地阐述这一点,因为如果不观察行为,就有点难以解释 我当前设置的简要示例:Javascript 复选框在平滑网格中未正确排序,javascript,jquery,html,sorting,slickgrid,Javascript,Jquery,Html,Sorting,Slickgrid,我正在修复一个应用程序中的排序问题,但遇到了一个问题。我正在使用Slick Grid实现我的网格。当前的排序函数(不是我自己编写的)运行良好,但有一个警告。它可以很好地对列进行排序,但在按列排序时,我无法使复选框保留在相应的行中。复选框保留在排序之前最初启用的同一行上,因此,如果用户要执行与所选行关联的许多功能之一,则将在错误的行上执行。请让我知道,如果我需要更详细地阐述这一点,因为如果不观察行为,就有点难以解释 我当前设置的简要示例: checkboxSelector : new Slick.
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是数据传递到的数组。在本例中,这似乎已经取代了数据视图,实现数据视图将是一项艰巨的任务。我非常感谢你的反馈。还有其他想法吗?