dojo - 如何在多列上查询 dgrid

标签 dojo dgrid

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

最佳答案

您可以编写自己的函数,正如我在回答您上一个问题 Is it possible to filter data in a dgrid like you can in a datagrid 中提到的那样?

或者您可以使用Resource Query Language (RQL) .

dgrid 查询其存储,例如dojo/store/Memory,默认使用dojo/store/util/SimpleQueryEngine。您所需要做的就是将您选择的 QueryEngine 提供给 store.queryEngine 属性。对于 RQL,它看起来像这样 ( source ):

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")

});

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

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

enter image description here

关于dojo - 如何在多列上查询 dgrid,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12207364/

相关文章:

css - 带水平滚动的 dgrid

javascript - 如何将 dojo dgrid 排序为 float 而不是字符串

javascript - data-dojo-props中正则表达式的格式是什么?

javascript - dojo AMD构造函数可以调用自己定义的函数吗?

javascript - 使用 dojo 工具包按间隔将 majorTicksColor 转换为 dojox 仪表

javascript - 如何在表格单元格上 float Dojo DropDownMenu

select - 道场 dgrid : (Pre) Select row on render

javascript - dojo editable-tree-dgrid : create or generate a new row supported in the dojo. store.JsonRest?

javascript - 获取 dojo comboBox 值

css - 使用浏览器窗口调整 DOJO 表的大小