如何在多列上查询dgrid

tea*_*man 2 dojo dgrid

是否可以创建一个dgrid查询来搜索多个列上的正则表达式字符串?通常语法指定{column1:"foo",column2:"foo"},但这将查找column1和column2都是"foo"的行.但我想对两个列使用相同的搜索字符串......这是可能的,我该怎么做?我需要像{column1 ||这样的东西 column2:"foo"}.

phu*_*ick 5

您可以编写自己的函数,就像我在上一个问题的答案中提到的那样,是否可以像在数据网格中那样在dgrid中过滤数据

或者您可以使用资源查询语言(RQL).

dgrid查询其商店,例如dojo/store/Memory,dojo/store/util/SimpleQueryEngine默认情况下使用的商店.您需要做的就是store.queryEngine使用您选择的QueryEngine提供属性.在RQL的情况下,它看起来像这样():

require(["dojo/store/Memory", "rql/js-array", "dgrid/OnDemandGrid"], function(Memory, rql, Grid) {

    var store = new Memory({ data: { /* some data here */}});
    store.queryEngine = rql.query;

    var grid = new Grid({
        store: store,
        columns: { /* some columns here */}
    }, "grid")

});
Run Code Online (Sandbox Code Playgroud)

现在,您可以使用RQL语法查询dgrid.回答你的问题的查询:(column1=foo|column2=foo).

请看看我的jsFiddle(http://jsfiddle.net/phusick/VjJBT).随意使用dgrid本身(有一些预定义的查询)或使用DOH单元测试(打开JS控制台来查看输出)进行分叉和实验:

在此输入图像描述