gpt4 book ai didi

javascript - 使用 complexQuery 的 Dojo DataGrid 过滤不起作用

转载 作者:行者123 更新时间:2023-11-30 13:01:30 25 4
gpt4 key购买 nike

我想找出过滤器功能不起作用的原因,但我被卡住了。这是我第一次使用 Dojo,但我并不真正熟悉该框架。我正在尝试并搜索可能 2 或 3 个小时,但找不到解决方案。我想要的是实现过​​滤器或搜索机制。但这还行不通……这是我的代码:

dojo.require('dojo.store.JsonRest');
dojo.require('dijit.layout.ContentPane');
dojo.require("dijit.form.Button");
dojo.require('dojox.grid.DataGrid');
dojo.require('dojo.data.ObjectStore');
dojo.require('dijit.form.TextBox');
dojo.require('dojox.data.AndOrReadStore');
dojo.require('dojo._base.xhr');
dojo.require('dojo.json')
dojo.require('dojo.domReady');
dojo.ready(
function(){
var appLayout = new dijit.layout.ContentPane({
id: "appLayout"
}, "appLayout");

var textBox = new dijit.form.TextBox({
name: "searchbox",
placeHolder: "Search ..."
});

var filterButton = new dijit.form.Button({
label: 'Filter',
onClick: function () {
searchWord = textBox.get('value');
query = "id: '"+searchWord
+"' OR date_A: '"+searchWord
+"' OR dateB: '"+searchWord
+"' OR product: '"+searchword+"'";
grid.filter({complexQuery: query}, true);
}
});

store = new dojo.store.JsonRest({target:'products/'});

grid = new dojox.grid.DataGrid(
{
store:dojo.data.ObjectStore({objectStore: store}),
structure:
[
{name:'id', field: 'id'},
{name:'date_A', field: 'dateA'},
{name:'date_B', field: 'dateB'},
{name:'product' , field: 'product'},
],
queryOptions: {ignoreCase: true}
});

textBox.placeAt(appLayout.domNode);
filterButton.placeAt(appLayout.domNode);
grid.placeAt(appLayout.domNode);

appLayout.startup();
}
);

如果你能告诉我这个 dojo 代码有什么问题,那就太好了......结果是,加载图标出现,一段时间后显示未过滤的数据......没有抛出异常。提前致谢。

最佳答案

好的,我已经用 AndOrReadWriteStore 解决了。您还可以使用 AndOrReadStore。问题是,JSON 数据的格式不正确。您可以在此处查看正确的格式:dojotoolkit.org/api/dojox/data/AndOrReadStore。另一个变化是:我使用 url 而不是商店内的数据属性。所以现在终于可以工作了。无论如何谢谢。

关于javascript - 使用 complexQuery 的 Dojo DataGrid 过滤不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17296357/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com