2015-09-03 2 views
1

В SlickGrid вы можете включить переупорядочение строк (перетаскивание). См. http://mleibman.github.io/SlickGrid/examples/example9-row-reordering.htmlSlickGrid: сортировка после переупорядочения не работает

Моя проблема заключается в том, что как только я переупорядочу строку (например, поместите строку 3 над строкой 1), я больше не могу сортировать записи. Если столбец называется «дата», и я нажимаю на этот столбец, ничего не происходит. С другой стороны, если я делаю не, измените порядок строк вручную, а затем отсортируйте по столбцу, это сработает.

Я не возражаю против того, что «сортировка по столбцу» уничтожит мой ручной порядок. Я просто хочу сохранить опцию для сортировки по столбцу после переупорядочения.

Любые советы приветствуются.

(я использую SlickGrid, потому что есть хорошая вилка, который показывает липкие строки/столбцы. Я не нашел эту функцию в другом месте, так что это мой единственным вариант)

ответ

1

Когда сетка вручную заказана функция подписчиков moveRowsPlugin.onMoveRows выполнено. Эта функция вызывает grid.setData(data) для обновления переупорядоченных строк в сетке. Вызов grid.setData(data) переопределяет DataView и непосредственно устанавливает данные в сетке. Поэтому обновления, сделанные в DataView (например, сортировка), больше не отражаются на сетке.

Для решения этой проблемы: grid.setData(data) - dataView.setItems(data) в функции, подписанной на moveRowsPlugin.onMoveRows (строка 364 встроенного JavaScript). Я также рекомендую очистить поля сортировки, чтобы индикатор сортировки был удален.

//Set updated data in DataView 
dataView.setItems(data); 

//Clear sort columns 
grid.setSortColumns([]); 
+0

Большое вам спасибо за помощь! – undefined

Смежные вопросы