筛选SlickGrid时部分匹配
Partial Matches When Filtering SlickGrid
由于我没有足够的声誉发表评论,我将这作为一个单独的问题发布。我正在尝试实现用户LFReD给出的解决方案,作为对这个问题的回答:
如何在使用列级标题筛选Slickgrid时执行部分匹配?
当我使用这个从原来的SlickGrid例子:
function filter(item) {
for (var columnId in columnFilters) {
if (columnId !== undefined && columnFilters[columnId] !== "") {
var c = mygrid.getColumns()[mygrid.getColumnIndex(columnId)];
if (item[c.field] != columnFilters[columnId]) {
return false;
}
}
}
return true;
}
当我键入完整的单词时,它就起作用了。不执行部分匹配。
但是,为了执行部分匹配,当我用替换代码时
function filter(item) {
for (var columnId in columnFilters) {
if (columnId !== undefined && columnFilters[columnId] !== "") {
var c = mygrid.getColumns()[mygrid.getColumnIndex(columnId)];
if (item[c.field].indexOf(columnFilters[columnId]) == -1) {
return false;
}
}
}
return true;
}
我在控制台中得到错误javascript错误,上面写着"Uncaught TypeError:Object 1没有方法'indexOf'"
我无法弄清楚我的代码中缺少了什么。由于前面的代码运行良好,这意味着我已经在HTML代码中包含了必要的脚本。似乎还是缺少了一些东西。我哪里错了?
更改以下行:
if (item[c.field].indexOf(columnFilters[columnId]) == -1) {
至:
if (!(item[c.field] && (""+item[c.field]).indexOf(columnFilters[columnId]) !== -1)) {
最终产品:
function filter(item) {
for (var columnId in columnFilters) {
if (columnId !== undefined && columnFilters[columnId] !== "") {
var c = mygrid.getColumns()[mygrid.getColumnIndex(columnId)];
if (!(item[c.field] && (""+item[c.field]).indexOf(columnFilters[columnId]) !== -1)) {
return false;
}
}
}
return true;
}
相关文章:
- 在指令控制器中使用$attrs时出现问题
- 从桌面读取python文件时高亮显示代码
- 当包含另一个asp文件时,是否也包含所有引用的样式和脚本页面
- 在循环中分配json值时,值被覆盖
- JQuery使计数器每次更改时都会增加
- 如何在生成下载文件时显示加载动画
- 使用clickToggle并在单击另一个元素时关闭元素
- 单击时将焦点更改为元素
- 将PHP变量传递给jQuery时遇到问题
- 如何在angularJS中编辑时,如果DB中的值为true,则设置复选框,如果值为false,则取消选中复选框
- 让文本输入幻灯片显示输入时的新文本输入?然后向后滑动
- SlickGrid在选择大范围的行时使浏览器崩溃
- 如何在slickgrid大小发生变化时收听
- 筛选SlickGrid时部分匹配
- 如何将slickgrid数据保存到“;数据“;单击某个外部按钮时的数组
- 如何在使用ng-repeat时获得手部光标
- 试图匹配两个数组中的值,并且仅在部分值完全匹配时才删除
- SlickGrid单元格样式在排序时丢失
- 从单元格中删除输入元素,并在单元格或其他单元格外部单击时保留值
- 在函数体内部使用ajax时,Javascript函数未定义错误