我正在使用dgrid,我想在两列中的网格中查找搜索项。Dojo DGrid RQL搜索
举例来说,我想看看学名和COMMONNAME列包含字符串“ACA”(我想我的搜索是不区分大小写)
我网格的定义:
var CustomGrid = declare([Grid, Pagination ]);
var gridStore = new Memory({ idProperty: 'tsn', data: null });
gridStore.queryEngine = rql.query;
grid = new CustomGrid({
store: gridStore,
columns:
[
{ field: "tsn", label: "TSN #"},
{ field: "scientificName", label: "Scientific Name"},
{ field: "commonName", label: "Common Name",},
],
autoHeight: 'true',
firstLastArrows: 'true',
pageSizeOptions: [50, 100],
}, id);
随着内置的查询语言(我认为是简单的查询语言),我能够在一列或另一列中找到该术语,但是我无法进行复杂的搜索以返回两列的结果。
grid.set("query", { scientificName : new RegExp(speciesKeyword, "i") });
grid.refresh()
我开始阅读,我认为RQL可以解决这个问题,但是,我正在努力的语法。
我一直在寻找在这些网页:
http://rql-engine.eu01.aws.af.cm/
https://github.com/kriszyp/rql
,我能够理解基本的查询,但“包含”语法我摸不透。
举例来说,如果我有这个简单的数据集,并希望找到包含字符串的科学和通用名称项“ACA”我认为我的包含查询应该是这样的:
contains(scientificName,string:aca)
然而,这导致没有匹配。
[
{
"tsn": 1,
"scientificName": "Acalypha ostryifolia",
"commonName": "Rough-pod Copperleaf",
},
{
"tsn": 2,
"scientificName": "Aegalius acadicus",
"commonName": "Northern Saw-whet Owl",
},
{
"tsn": 3,
"scientificName": "Portulaca pilosa",
"commonName": "2012-02-01",
},
{
"tsn": 4,
"scientificName": "Accipiter striatus",
"commonName": "Kiss-me-quick",
},
{
"tsn": 5,
"scientificName": "Acorus americanus",
"commonName": "American Sweetflag",
}
]
有人可以指导我如何制定正确的语法吗?谢谢。