2014-09-15 3 views
1

как сбросить параметры поиска в mleibman/SlickGrid. Я хочу добавить кнопку очистки фильтра.mleibman/SlickGrid Добавление кнопки очистки

Просто хочу знать его там любую встроенную функцию имеющиеся или нам нужно написать пользовательскую функцию для этого

ответ

2

Вот короткая версия она работает, я проверил его.

// remove the text inside each search input fields 
$('.slick-headerrow-column').children().val(''); 

// empty out all column filters within the columnFilters object & refresh dataview 
for (var columnId in columnFilters) { 
    columnFilters[columnId] = ""; 
} 
dataView.refresh(); 

Переменная columnFilters очень важна, но, может быть назван по-разному в зависимости от вашего кода, но если вы посмотрите на эту Slickgrid Example вы можете увидеть, что она определяется как var columnFilters = {};, а затем убедитесь, что этот кусок кода:

$(grid.getHeaderRow()).delegate(":input", "change keyup", function (e) { 
    var columnId = $(this).data("columnId"); 
    if (columnId != null) { 
    columnFilters[columnId] = $.trim($(this).val()); 
    dataView.refresh(); 
    } 
}); 

который прикрепляет все входы в этом переменный объекте columnFilters ... то только после того, как вы можете использовать код, который я дал (который работает для меня, как я тестировал)

+0

Это работало? Я не видел, чтобы вы что-то отвечали ... +1 тоже было бы хорошо :) – ghiscoding

+0

Я пробовал сегодня. Он отлично работает, но сетка не освежает никакой идеи. – Shesha

+0

Хм есть пара вариантов. кеш браузера? Но я предполагаю, что это проблема, потому что у вас нет переменной 'columnFilters', иначе у вас ее код по-другому. Поддерживает ли Firebug (расширение Firefox) любые ошибки javascript? Я отредактирую свой ответ на то, где следует найти переменную 'columnFilters' – ghiscoding

0

Ответ работает, но у вас могут быть проблемы, если на странице имеется более одного SlickGrid.

$('.slick-headerrow-column').children().val(''); 

Сбросить все фильтры для всех сеток на странице. Другой вариант заключается в использовании:

if ($(grid.getHeaderRow())) { 
    $(grid.getHeaderRow()).find("input").val(""); 
} 

Где grid это имя компонента SlickGrid. Это приведет к сбросу этой сетки.

Остальная часть кода:

for (var columnId in columnFilters) { 
    columnFilters[columnId] = ""; 
} 

Работы для меня!