Вы можете позвонить dataView.reSort();
, чтобы вызвать курорт, кажется, это то, что вы ищете. Меню сетки вызывает dataView.refresh();
, и я не уверен, что это вызовет reSort
основной библиотекой, возможно, это так. Меню заголовка удаляет только сортировку столбцов, не зная, осталось ли сортировка, в основном не отслеживает, сколько сортировок осталось, и не вызывает reSort
ни refresh
, но вы можете называть это сам он будет сообщать только DataView. Эй, пожалуйста, удалите этот столбец.
Теперь, чтобы добавить дополнительный процесс в меню заголовка, вам нужно подписаться на команду меню заголовка clear-sort
, вы можете сделайте это, выполнив что-то вроде этого (я не тестировал его, но он должен работать)
this.gridOptions = {
headerMenu: {
onCommand: (e, args) => {
if (args.command === 'clear-sort') {
const dataView = args.grid.getData();
const sortCols = args.grid.getSortColumns();
// add logic to know if this is last column sort
if (sortCols.length === 0) {
// then call "refresh" or "reSort" either or
// dataView.refresh();
dataView.reSort();
// if that doesn't work then try to call lib SortService from (onAngularGridCreated)
// this.angularGrid.sortService.clearSorting();
}
}
}
}
Обратите внимание, что я являюсь автором Angular -Slickgrid, и это решение не является частью самой библиотеки , Я мог бы добавить его позже, но пока это должно быть временное решение.