2014-12-15 2 views
1

Я использую Ext.ux.LiveSearchGridPanel, и я хочу скрыть все строки, которые не совпадают.Ext.ux.LiveSearchGridPanel скрыть несогласованные строки

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

Я пользуюсь файлом Ext.data.Store, который содержит мои данные.

Я попытался найти конфигурацию для этого, но не повезло.

ответ

2

Вы можете обработать поле поиска и сохранить фильтр на это значение. Что-то вроде этого:

Ext.create('Ext.ux.LiveSearchGridPanel', { 

    ... 

    listeners: { 
     afterrender: function() { 
      var me = this, 
       store = me.getStore(); 

      me.textField.on('change', function(cmp) { 
       var searchValue = cmp.getValue(); 

       store.clearFilter(true); 

       if (!searchValue) { 
        return; 
       } 

       store.filter(function(record) { 
        // you can filter store by some column 
        var companyName = record.get('company'); 

        if (!me.caseSensitive) { 
         companyName = companyName.toLowerCase(); 
         searchValue = searchValue.toLowerCase(); 
        } 

        if (me.regExpMode) { 
         var match = companyName.match(searchValue); 

         return match ? this.indexOf(match[0]) : -1; 
        } 

        return companyName.indexOf(searchValue) != -1; 
       }); 
      }) 
     } 
    } 
}); 

Look my fiddle example

+1

Ноль очков? хорошее решение. +1 – Chris

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