如何根据多列对 prime-ui 数据表进行排序
How to sort prime-ui datatable, based on more than one column
我想根据 2 列对数据表进行排序。如果我使用以下 属性,
{排序字段:'ColumnHeader'}
它不工作。
它不适用于当前的 primeui(在回答时它是 1.1
)。看看排序功能:
sort: function(field, order) {
if(this.options.selectionMode) {
this.selection = [];
}
if(this.options.lazy) {
this.options.datasource.call(this, this._onLazyLoad, this._createStateMeta());
}
else {
this.data.sort(function(data1, data2) {
var value1 = data1[field],
value2 = data2[field],
result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;
return (order * result);
});
if(this.options.selectionMode) {
this.selection = [];
}
if(this.paginator) {
this.paginator.puipaginator('option', 'page', 0);
}
this._renderData();
}
},
如您所见,它使用 Array.prototype.sort() 函数并访问 field-to
var value1 = data1[field],
value2 = data2[field],
也许您可以重写这个特定的函数并改用您自己的 sort
方法。
http://www.primefaces.org/primeui/#datatableSort
它在 Prime UI 版本 4.1.3
中可用
我想根据 2 列对数据表进行排序。如果我使用以下 属性,
{排序字段:'ColumnHeader'}
它不工作。
它不适用于当前的 primeui(在回答时它是 1.1
)。看看排序功能:
sort: function(field, order) {
if(this.options.selectionMode) {
this.selection = [];
}
if(this.options.lazy) {
this.options.datasource.call(this, this._onLazyLoad, this._createStateMeta());
}
else {
this.data.sort(function(data1, data2) {
var value1 = data1[field],
value2 = data2[field],
result = (value1 < value2) ? -1 : (value1 > value2) ? 1 : 0;
return (order * result);
});
if(this.options.selectionMode) {
this.selection = [];
}
if(this.paginator) {
this.paginator.puipaginator('option', 'page', 0);
}
this._renderData();
}
},
如您所见,它使用 Array.prototype.sort() 函数并访问 field-to
var value1 = data1[field],
value2 = data2[field],
也许您可以重写这个特定的函数并改用您自己的 sort
方法。
http://www.primefaces.org/primeui/#datatableSort
它在 Prime UI 版本 4.1.3
中可用