neumachen
9/5/2014 - 4:59 PM

jqgrid-livefilter.js

$(function() {
  
  var $grid = $('#yourGridId'); // @todo: Insert your grid selector
  var gridData;
  var rowIds;
  
  $grid.jqGrid({
      // @todo: Insert your grid configuration
      loadComplete : function (data) {
        gridData = $grid.jqGrid('getRowData');
        for (var key in gridData[0]) {
          rowIds = $grid.jqGrid('getCol', key, true);
          break;
        }
      },
      caption      : '<input type="search" id="gridsearch" placeholder="Search" results="0" />'
  });
  
  $('#gridsearch').on('keyup', function() {
    // You can't search unless grid values have been loaded
    if (typeof gridData != "undefined" && typeof rowIds != "undefined") {
      var searchString = $(this).val().toLowerCase();
      
      $.each(gridData, function(id, row) {
        var show = false;
        $.each(row, function(id, cell) {
          if(cell.toLowerCase().indexOf(searchString) >= 0) {
            show = true;
            return false;
          }
        });
      
        var $row = $('#'+rowIds[id].id);
        if (show) {
          $row.show();
        } else {
          $row.hide();
        }
      });
    }
  });
    
});