dhtmlxGantt предоставляет возможность сортировать данные внутри столбцов грида на стороне клиента.
Есть два способа включить сортировку в гриде:
Имейте в виду, что Gantt сортирует задачи только по фактическим значениям данных и не сортирует значения, созданные с помощью атрибута template столбца.
При щелчке по заголовку Gantt отображает визуальный индикатор, который показывает, какой столбец отсортирован в данный момент и в каком порядке (по возрастанию или убыванию). Каждый последующий клик по тому же заголовку меняет направление сортировки.
Чтобы включить сортировку в Gantt, установите свойство sort в true:
gantt.config.sort = true;
gantt.init("gantt_here");
Related sample: Built-in sorting
Чтобы отсортировать грид в ответ на определённое событие или действие (например, нажатие кнопки или загрузку страницы), используйте метод sort.
Сортировка по нажатию кнопки
<input type='button' value='Sort by task name' onclick='gantt.sort("text", true);'>
<script type="text/javascript" charset="utf-8"> gantt.init("gantt_here");
gantt.parse(tasks);
</script>
Related sample: Using sorting methods
Можно применить пользовательскую функцию сортировки, передав её имя в качестве первого (и единственного) параметра методу sort.
Эта функция вызывается для каждой пары соседних значений и должна возвращать 1, -1 или 0:
Использование пользовательской функции для сортировки Gantt
<input type='button' value='Sort by the number of holders'
onclick='sortByHolders(direction)'>
<script type="text/javascript" charset="utf-8"> var direction = false;
function sortByHolders(direction1){
direction = !direction;
gantt.sort(sortHolders);
};
function sortHolders(a,b){
a = a.users.length;
b = b.users.length;
if (direction){
return a>b?1:(a<b?-1:0);
} else {
return a>b?-1:(a<b?1:0);
}
};
</script>
Related sample: Custom sorting function
Можно определить индивидуальные правила сортировки для каждого столбца. Вот три распространённых способа настройки сортировки по столбцам:
1) Отключить сортировку для столбца, установив sort в false
gantt.config.columns[1].sort = false;
2) Сортировать столбец с помощью пользовательской функции, установив sort в эту функцию
gantt.config.columns[1].sort = function(a,b){
return custom_function(a,b);
};
Эта пользовательская функция получает два объекта задачи (a и b) и возвращает 1, -1 или 0:
3) Сортировать столбец по значениям другого поля задачи, установив sort в имя этого поля
gantt.config.columns[1].sort = 'other_field';
К началу