我正在使用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",
}
]
有人可以指導我如何制定正確的語法嗎?謝謝。