【发布时间】:2015-05-04 10:58:52
【问题描述】:
排序实现不起作用。对于我设置了 sortable: true 的列,单击标题时,我看到正在调用 subscribe 函数但没有任何反应。 dataRow1 和 dataRow2 都具有正确的信息,并且符号返回它应该返回的值,但网格渲染不起作用。任何帮助将不胜感激。
var data = getDataForGrid();
var dataView = new Slick.Data.DataView();
dataView.beginUpdate();
dataView.setItems(data, 'employeeID');
dataView.endUpdate();
var grid = new Slick.Grid("#myGrid", dataView, getColumnHeadersForGrid(), getOptions());
grid.onSort.subscribe(function(e,args){
var cols = args.sortCol;
dataView.sort(function (dataRow1, dataRow2) {
var field = cols[i].sortCol.field;
var value1 = null;
var value2 = null;
if(dataRow1 !=null){
value1 = dataRow1[sortedColumns.field];
}
if(dataRow2 !=null){
value2 = dataRow2[sortedColumns.field];
}
var sign = cols[i].sortAsc ? 1: -1;
var result = (value1 ==value2 ? 0 : (value1 > value2 ? 1: -1)) * sign;
if(result != 0) {
return result;
}
return 0;
});
grid.invalidate();
grid.render();
}
function getDataForGrid(){
var data = [];
//Have logic to get the data
return data;
}
function getColumnHeadersForGrid(){
var columns = [];
columns.push({id:"employeeID", name:"Employee ID", field:"employeeID", sortable: true, width: 200});
columns.push({id:"title", name:"Title", field:"title", sortable: true, width: 200});
columns.push({id:"duration", name:"Duration", field:"duration", sortable: true, width:150});
columns.push({id:"%", name:"% Complete", field:"percentComplete", sortable: true, width: 200});
return columns;
}
function
【问题讨论】:
-
这是一个angularjs库?你假装和 angularjs 一起使用?
-
是的。这是 angularjs
标签: jquery angularjs sorting slickgrid