2016-09-22 2 views
1

У меня есть два скрытых столбца в таблице jQuery - BootGrid, и я не хочу ее показывать, но я хочу искать по этим двум столбцам в поисковике. Как мне это сделать? Я попытался добавить data-visible="false" data-searchable="true" data-identifier="true", но это не сработает.jquery-bootgrid как искать в скрытых столбцах

ответ

1

Путь Bootgrid работает в данный момент (версия 1.3.1), он ищет только для видимых колонок, смотрите на их исходный код здесь:

jquery.bootgrid.js

for (var i = 0; i < that.columns.length; i++) 
{ 
    column = that.columns[i]; 
    if (column.searchable && column.visible && 
     column.converter.to(row[column.id]).search(searchPattern) > -1) 
    { 
     return true; 
    } 
} 

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

Одним из вариантов решения этой проблемы, меняется его быть похожим на это:

for (var i = 0; i < that.columns.length; i++) 
{ 
    column = that.columns[i]; 
    if (column.searchable && row[column.id]) 
     if(column.converter.to(row[column.id]).search(searchPattern) > -1) { 
     return true; 
    } 
} 

Это позволит сделать скрытые столбцы для поиска. Если у вас есть какие-либо другие скрытые поля, которые вы действительно не хотели искать, теперь вы должны явно указать searchable на false (либо через атрибуты данных html, либо jquery).

Кроме того, если вы хотите использовать версию minified, вы должны ее минимизировать, так как существующий не будет иметь этих изменений. Кроме того, будьте осторожны, если вы или кто-то из вашей команды решает снова загрузить библиотеку (например, для обновления или по какой-либо другой причине).


В качестве бонуса, вы можете заметить, я также вставил && row[column.id], чтобы избежать исключений, когда у вас есть null значения, загруженное с помощью метода append.

+0

Работает как очарование! – wander

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