2017-01-25 4 views
0

У меня действительно неприятная проблема с укрытием и показом нескольких строк в ручном режиме. Так очень упрощенный сценарий, который мне нужно скрыть и показать строки на основе некоторых бизнес-условий.Совместимый trimRows работает некорректно

Я использую trimRows и untrimRows для этого, в целом он отлично работает, пока сортировка столбцов не отключится. Если он настроен, то после того, как вызовы метода nonrim/trim и повторная рендеринг сетки, пустые строки появляются в сетке.

Пожалуйста см скрипки: http://jsfiddle.net/n8ggsbob/13/

columnSorting: { 
        column: 0, 
        sortOrder: true 
       } 
    var fake = [1, 2, 3, 4, 5, 6, 7, 8, 10]; 
    hot.getPlugin('trimRows').untrimRows(fake); 
    hot.getPlugin('trimRows').trimRows(fake); 
    hot.render(); 

просто нажмите кнопку отправки и обратите внимание, что много пустых строк появились (или просто не удалено)

Но, как упоминалось ранее, если я удалить сортировку всех работ большое: http://jsfiddle.net/n8ggsbob/14/

var fake = [1, 2, 3, 4, 5, 6, 7, 8, 10]; 
hot.getPlugin('trimRows').untrimRows(fake); 
hot.getPlugin('trimRows').trimRows(fake); 
hot.render(); 

Единственное, что помогает от этих пустых строк внешнего вида, является вызов метода updateSettings, но сортировка сбрасывается: http://jsfiddle.net/n8ggsbob/16/

var fake = [1, 2, 3, 4, 5, 6, 7, 8, 10]; 
    hot.getPlugin('trimRows').untrimRows(fake); 
    hot.getPlugin('trimRows').trimRows(fake); 

    hot.updateSettings({}); 
    hot.render(); 

ли кто-то сталкивался с подобными проблемами или я что-то упустил?

Спасибо большое, Alex

ответ

0

Я не уверен, почему вы пытаетесь Untrim первого и отделки сразу после:

hot.getPlugin('trimRows').untrimRows(fake); 
hot.getPlugin('trimRows').trimRows(fake); 

Но в любом случае, что является причиной вашей проблемы. Удалите функцию untrimRows в первом примере, и вы увидите, что проблема исчезнет.

Опять же, я не уверен, чего вы пытаетесь достичь, но если, например, у вас есть две кнопки: одна для хэнддинга, а другая для отображения снова, нет конфликта с функцией сортировки: your example updated ,

+0

Hey fap, благодарит за быстрый ответ. Я пытаюсь реализовать какой-то глобальный поиск сетки. Допустим, что пользователь вводит какое-то ключевое слово, затем нажимает кнопку поиска, и в этот момент сетка должна очистить все предыдущие строки, а затем обрезать все строки, которые не содержат искомый текст. Вот почему я пытаюсь обрезать и не обрезать одну и ту же функцию. – user3046346

+0

Ну, в этом случае, FYI, я хотел сделать почти то же самое, но без использования версии PRO: http://stackoverflow.com/questions/39769474/individual-column-filtering-with-handsontable/ – fab

+0

Да, Я недавно увидел эту должность, спасибо за это. Но я боюсь загружать данные по каждому фильтру. Дело в том, что страница, над которой я сейчас работаю, довольно сложна (с редактированием, удалением, добавлением), и существует риск того, что использование loadData приведет к некоторым «неожиданным» результатам. Но, используя плагин trimRows, он выглядит более безопасным. – user3046346