Filter SlickGrid将Andrew Childs过滤器应用于最新版本的主分支
首先,我要说我对jQuery或任何JavaScript编程都很陌生,所以请原谅任何与noob相关的错误 我正在使用SlickGrid为我的公司创建一个web应用程序,它将根据用户的角色加载不同的数据集,因此我的字段将由动态sql查询定义,而不是硬编码 我想将SlickGrid分支上的Andrew Child过滤器应用到主分支的最新版本。此示例中将显示过滤器: 我创建了一个控件(使用pager控件作为模板)来添加过滤头元素。看起来很棒!现在我只需要让它发挥作用。在下文中,我似乎需要修改此函数以循环遍历列,返回筛选器类型和列名,而不是硬编码筛选器类型和列名Filter SlickGrid将Andrew Childs过滤器应用于最新版本的主分支,filter,slickgrid,Filter,Slickgrid,首先,我要说我对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(项目,参数){
如果(项目[“完成百分比”]
我的问题是:
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!我花了一点时间才弄到,但现在它开始工作了!我让事情变得比需要的更复杂。