Filter SlickGrid将Andrew Childs过滤器应用于最新版本的主分支

Filter SlickGrid将Andrew Childs过滤器应用于最新版本的主分支,filter,slickgrid,Filter,Slickgrid,首先,我要说我对jQuery或任何JavaScript编程都很陌生,所以请原谅任何与noob相关的错误 我正在使用SlickGrid为我的公司创建一个web应用程序,它将根据用户的角色加载不同的数据集,因此我的字段将由动态sql查询定义,而不是硬编码 我想将SlickGrid分支上的Andrew Child过滤器应用到主分支的最新版本。此示例中将显示过滤器: 我创建了一个控件(使用pager控件作为模板)来添加过滤头元素。看起来很棒!现在我只需要让它发挥作用。在下文中,我似乎需要修改此函数以循环

首先,我要说我对jQuery或任何JavaScript编程都很陌生,所以请原谅任何与noob相关的错误

我正在使用SlickGrid为我的公司创建一个web应用程序,它将根据用户的角色加载不同的数据集,因此我的字段将由动态sql查询定义,而不是硬编码

我想将SlickGrid分支上的Andrew Child过滤器应用到主分支的最新版本。此示例中将显示过滤器:

我创建了一个控件(使用pager控件作为模板)来添加过滤头元素。看起来很棒!现在我只需要让它发挥作用。在下文中,我似乎需要修改此函数以循环遍历列,返回筛选器类型和列名,而不是硬编码筛选器类型和列名

function myFilter(item, args) {
  if (item["percentComplete"] < args.percentCompleteThreshold) {
    return false;
  }

  if (args.searchString != "" && item["title"].indexOf(args.searchString) == -1) {
    return false;
  }

  return true;
}
函数myFilter(项目,参数){
如果(项目[“完成百分比”]
我的问题是:

  • 我是否已经接近正轨了
  • 如果1为“是”,如何修改myFilter()和dataView.compileFilter()
  • 谢谢你的帮助

    欢迎来到SO

    筛选函数(
    myFilter
    在您的示例中)应用于DataView中的每个项目(行)。如果列不是硬编码的,则可以使用
    grid.getColumns()
    获取列列表。例如,请看我的筛选函数:

    function filter(item) {
      for (var columnId in columnFilters) {
        if (columnId !== undefined && columnFilters[columnId] !== "") {
            var c = grid.getColumns()[grid.getColumnIndex(columnId)];
            if(c.field == "...") {
                // return filtered items
            }
            else {
                // return false
            }
        }
      }
    return true;
    }
    
    这里的
    columnFilters
    是一个数组,包含要筛选的my值


    如果您有任何问题,请告诉我。

    这是SlickGrid示例中的代码,对吗?这比例4更好吗?示例4似乎是一个更优雅的解决方案。。。顺便说一句,感谢您的快速回复!这就是我在我的页面上的代码。我想这是一个SlickGrid的例子,但我记不起来了。我想给你一个例子,说明过滤是如何工作的——即使是动态创建的列。谢谢ganeshk!我花了一点时间才弄到,但现在它开始工作了!我让事情变得比需要的更复杂。