extjs 3.4.0 - 如何过滤读取 JSON 的存储
Posted
技术标签:
【中文标题】extjs 3.4.0 - 如何过滤读取 JSON 的存储【英文标题】:extjs 3.4.0 - How to filter store that reads JSON 【发布时间】:2018-11-30 07:55:16 【问题描述】:我正在尝试为privilege
字段过滤具有32
值的JSON。我尝试了多种过滤它的方法,但它仍然返回所有行而不是过滤后的行。
Ext.onReady(function ()
// create the data store
var store = new Ext.data.Store(
url: url,
reader: new Ext.data.JsonReader(
root: 'keys',
idProperty: 'key',
fields: ['key', 'name']
),
autoLoad: true
);
store.filter(
property: 'privileges',
value: 32,
type: 'int',
exactMatch: true
);
//create the Grid
var grid = new Ext.grid.GridPanel(
store: store,
columns: [
id :'name',
header : 'Name',
width : 500,
sortable : true,
dataIndex: 'name'
,
header : 'Key',
width : 500,
sortable : false,
dataIndex: 'key'
,
header : 'Regenerate',
width : 300,
dataIndex: ''
],
stripeRows: true,
height: 350,
title: 'Administrator Keys'
);
grid.render('restApiKeyContent');
);
当前我的 JSON 如下
"id": "abc123",
"name": "Test",
"queue": "test",
"expire": "2118-11-27T02:05:15.546778Z",
"keys": [
"key": "64654asdsad1sd1",
"customer": "Test Customer",
"externalUser": "123213",
"name": "Jenna Testing API Key 1",
"privileges": 31
,
"key": "7c5362f98f084ae7b76b8484f660fdcf",
"customer": "Test Customer",
"externalUser": "123213",
"name": "Jenna Testing API Key 1",
"privileges": 16
如果有人可以指导我如何按以 Keys
为根的特定字段过滤 JSON,不胜感激?
【问题讨论】:
【参考方案1】:这可能会对您有所帮助。在 JSONReader 中添加 privileges
字段并在 store 加载后过滤 store:
Ext.onReady(function ()
// create the data store
var store = new Ext.data.Store(
url: 'filter-store-extjs3.json',
reader: new Ext.data.JsonReader(
root: 'keys',
idProperty: 'key',
fields: ['key', 'name', 'privileges']
),
autoLoad: true,
listeners:
load: function()
store.filter('privileges', '16', true, true);
);
var grid = new Ext.grid.GridPanel(
renderTo: Ext.getBody(),
store: store,
columns: [
id :'name',
header : 'Name',
width : 500,
sortable : true,
dataIndex: 'name'
,
header : 'Key',
width : 500,
sortable : false,
dataIndex: 'key'
,
header : 'Regenerate',
width : 300,
dataIndex: ''
],
stripeRows: true,
height: 350,
title: 'Administrator Keys'
);
);
【讨论】:
是的,它有效!我没有想过在该领域添加“特权”。非常感谢!以上是关于extjs 3.4.0 - 如何过滤读取 JSON 的存储的主要内容,如果未能解决你的问题,请参考以下文章
EXTJS 4.1 如何在不重新加载 TreeStore 的情况下删除过滤器
如何使用 ExtJS JSONReader 读取不可迭代的参数