Как отсортировать данные в формате Prime-UI, основываясь на более чем одном столбце
Я хочу отсортировать данные на основе 2 столбцов. Если я использую следующее свойство,
{sortField: 'ColumnHeader'}
Это не работает.
2 ответа
Решение
Он не будет работать с текущей примей (на момент ответа 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 () и обращается к полю
var value1 = data1[field],
value2 = data2[field],
Может быть, вы можете переопределить эту функцию и использовать свой собственный sort
метод вместо.
http://www.primefaces.org/primeui/
Его доступно в Prime UI версии 4.1.3