Jquery SlickGrid-让关键字搜索过滤器工作

Jquery SlickGrid-让关键字搜索过滤器工作,jquery,search,slickgrid,Jquery,Search,Slickgrid,我正在尝试将SlickGrid加入到我正在开发的一个项目中,我正在尝试重新创建开箱即用的示例,除了随机生成的数据和CSS之外,没有其他定制的东西。现在唯一不起作用的是搜索功能。如果你们中的一些人能看看我的代码并告诉我是否有什么地方我做错了,我会非常感激。下面是链接:试试这个示例 var dataView = new Slick.Data.DataView(); var slickGrid = new Slick.Grid($('#grid_div'), dataView, gridColumns

我正在尝试将SlickGrid加入到我正在开发的一个项目中,我正在尝试重新创建开箱即用的示例,除了随机生成的数据和CSS之外,没有其他定制的东西。现在唯一不起作用的是搜索功能。如果你们中的一些人能看看我的代码并告诉我是否有什么地方我做错了,我会非常感激。下面是链接:

试试这个示例

var dataView = new Slick.Data.DataView();
var slickGrid = new Slick.Grid($('#grid_div'), dataView, gridColumns, gridOptions);
//Keyup event on search selector..
$('#search').keyup(function(e) {
 // clear on Esc
  if (e.which == 27) {
   this.value = "";
  }

  var searchList = $.trim(this.value.toLowerCase()).split(' ');
  dataView.setFilter(gridFilter);  
  slickGrid.invalidate();
  this.focus();

});
//This is custom logic for grid Filtering..
function gridFilter (rec) {
            var found;

            for (i = 0; i < gridSearchList.length; i += 1) {
                found = false;
                $.each(rec, function(obj, objValue) {
                    if (typeof objValue !== 'undefined' && objValue != null 
                    && objValue.toString().toLowerCase().indexOf(gridSearchList[i]) != -1) {
                        found = true;
                        return false; //this breaks the $.each loop
                    }
                });
                if (!found) {
                    return false;
                }
            }

            return true;
        }
var-dataView=new Slick.Data.dataView();
var slickGrid=new Slick.Grid($(“#Grid_div”)、dataView、gridColumns、gridOptions);
//搜索选择器上的Keyup事件。。
$(“#搜索”).keyup(函数(e){
//在Esc上清除
如果(e.which==27){
此值为“”;
}
var searchList=$.trim(this.value.toLowerCase()).split(“”);
setFilter(gridFilter);
slickGrid.invalidate();
这是focus();
});
//这是网格筛选的自定义逻辑。。
函数gridFilter(rec){
var发现;
对于(i=0;i
这应该符合你的要求


祝你好运。Niks

在你的触发器部分,添加以下内容:

$('#search').keyup(function(e) {
    if(e.which === 27) {   // clear on esc
        this.value = '';    
    }

    dataView.setFilter(gridFilter);
    slickGrid.invalidate();
 });

**//create a function gridFilter**

function gridFilter (rec) {
        var found,
            searchData = $.trim($('#search').val()).toLowerCase().split(' ');
    for (i = 0; i < searchData.length; i += 1) {
        found = false;
        $.each(rec, function(obj, objValue) {       
        if (typeof objValue !== 'undefined' && objValue != null && objValue.toString().toLowerCase().indexOf(searchData[i]) != -1) {
            found = true;
            return false; //this breaks the $.each loop
        }
    });
    if (!found) {
        return false;
    }
  }
    return true;        
}
$(“#搜索”).keyup(函数(e){
如果(e.which==27){//在esc上清除
这个值=“”;
}
setFilter(gridFilter);
slickGrid.invalidate();
});
**//创建函数gridFilter**
函数gridFilter(rec){
var发现,
searchData=$.trim($('#search').val()).toLowerCase().split('');
对于(i=0;i
Hi Niks,我有一个类似的要求,你也能帮我吗。这是我问题的链接