dhtmlxGantt позволяет сортировать данные в столбцах грида на стороне клиента. Существует два основных способа включения сортировки:
sort
.sort
, который может быть запущен событиями или действиями, такими как нажатие кнопки или загрузка страницы.Gantt может сортировать задачи только на основе значений данных и не будет сортировать значения, полученные из атрибута шаблона столбца.
Когда кто-то щелкает по заголовку столбца, диаграмма Ганта показывает элемент управления, который выделяет сортируемый столбец и направление сортировки (по возрастанию или убыванию). Повторный щелчок по тому же заголовку изменяет порядок сортировки на противоположный.
Чтобы включить эту функцию, просто установите свойство sort
в true:
gantt.config.sort = true;
gantt.init("gantt_here");
Related sample: Built-in sorting
Если вы хотите сортировать грид на основе события или действия, такого как нажатие кнопки или загрузка страницы, вы можете использовать метод sort
.
Сортировка по нажатию кнопки
<input type='button' value='Сортировать по названию задачи' 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
. Просто предоставьте вашу пользовательскую функцию в качестве первого параметра.
Пользовательская функция сортировки сравнивает пары смежных значений и возвращает одно из следующих значений:
Использование пользовательской функции для сортировки диаграммы Ганта
<input type='button' value='Сортировать по количеству владельцев'
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
) и вернет одно из следующих значений:
3) Сортировка по другому полю задачи: Назначьте имя поля свойству sort.
gantt.config.columns[1].sort = 'other_field';
К началу