如何在GridJS中通过Selector限定仅邮箱和手机号为可搜索字段
限定GridJS搜索范围至指定字段
要把GridJS的搜索范围限定仅在Email和Phone Number字段,只需修改search.selector函数,只让目标列的单元格内容参与搜索匹配:
const grid = new Grid({ columns: [ { name: 'Name', formatter: (cell) => cell.firstName }, 'Email', 'Phone Number' ], search: { // 仅让Email(索引1)和Phone Number(索引2)列参与搜索 selector: (cell, rowIndex, cellIndex) => { // 只返回目标列的单元格内容,其他列返回空字符串(不参与搜索) if (cellIndex === 1 || cellIndex === 2) { return cell; } return ''; } }, data: [ [{ firstName: 'John', lastName: 'MP' }, 'john@example.com', '(353) 01 222 3333'], [{ firstName: 'Mark', lastName: 'Blue' }, 'mark@gmail.com', '(01) 22 888 4444'], ] });
逻辑说明
- GridJS的列索引从0开始:Name列是索引0,Email是索引1,Phone Number是索引2
- 在
selector函数中,我们只对索引1和2的单元格返回原始内容,供搜索逻辑匹配 - 其他列返回空字符串,这样搜索时会忽略这些列的内容
测试时,搜索"john"不会得到匹配结果(因为Name列不参与搜索),但搜索"example.com"或"(353)"就能精准匹配到对应行。
内容的提问来源于stack exchange,提问作者garej
相关产品推荐
相关产品推荐

