Я не уверен, как точно описать эту проблему, но я делаю виджет JQueryUI из очень полезного плагина SlickGrid JQuery. Slickgrid позволяет настроить функцию, используемую в качестве «фильтра», чтобы разрешить поиск строк на клиенте. Как это...
_filter: function (item) {
if (this.options.searchString == null)
{ return true; }
if (this.options.searchString.length == 0)
{ return true; }
for (var prop in item) {
if (item[prop] != null) {
if (item[prop].toString().toLowerCase().indexOf(searchString.toLowerCase()) > -1)
{ return true; }
}
}
return false;
}
self.options.dataView.setFilter(self._filter);
Моя проблема в том, что после вызова _filter
this
устанавливается на элемент окна и больше не содержит ссылку на виджет, поэтому все мои параметры недоступны. Как я могу сообщить _filter
, какой термин пользователь ищет в сетке?
Сложность: на странице будет несколько экземпляров виджета, каждый со своим отдельным фильтром. Кроме того, я бы предпочел не изменять способ работы SlickGrid.