Здравствуйте, меня зовут Камасу Пол. Сегодня я расскажу вам о сортировке по умолчанию q-таблицы в quasar framework.
Проблема
Недавно я обнаружил, что мне нужно, чтобы таблица quasar сортировалась по определенному столбцу моей таблицы. Моя цель состояла в том, чтобы отсортировать таблицу
и чтобы самые последние элементы отображались сверху. Изучив документацию, я не смог легко понять, как этого добиться.
Решение.
После нескольких поисков выяснилось, что
Решение заключается в использовании атрибута pagination
и добавлении его к таблице с помощью v-model:pagination="pagination"
.
<q-table
row-key="id"
:rows="transactionsList"
:columns="columns"
v-model:pagination="pagination"
>
Затем в объекте пагинации указывается атрибут sortBy
.
data() {
return {
//...
pagination: {
rowsPerPage: 25,
sortBy: 'updated_at',
descending: true,
}
//... other properties
}
},
В моем случае столбец называется updated_at
и хранит временную метку даты javascript.
Чтобы использовать пользовательскую функцию сортировки, добавьте функцию sort
к столбцу, который вы хотите отсортировать в массиве столбцов, в моем случае updated_at
.
const columns = [
{
name: "updated_at", label: "Date Updated",
field: "updated_at", sortable: true,
sort: (a, b) => a - b
},
// ... other columns
];
В моем случае это встроенная функция sort: (a, b) => a - b
, которая сравнивает две временные метки из двух строк для их сортировки.
Вот и все. Надеюсь, это поможет