我店里的数据如下:
responseText:
"insurance" : [{
"insurance_id" : "1",
"insurance_companyName" : "Nas Administrative Services",
"insurance_status" : "1"
}, {
"insurance_id" : "2",
"insurance_companyName" : "Abu Dhabi National Insurance Company",
"insurance_status" : "0"
}
]我将把这些数据传递给一个组合框。
{
xtype:'combobox',
name:'network_comapanyId',
fieldLabel: 'Insurance Company',
displayField: 'insurance_companyName',
valueField: 'insurance_id',
store: insuranceStore,
allowBlank: false,
padding: '2 2 2 2',
width: 300,
queryMode : 'local'
}, 它显示的是数据,但我只想用'insurance_status : 1'.显示项目
我在其他页面中使用相同的存储数据,所以我无法更新我的存储。是否有任何解决方案仅显示活动项?
发布于 2018-10-04 06:25:27
您可以在您的商店中添加一个过滤器--这里是示例灌装
Ext.create('Ext.form.Panel', {
title: 'FOrm',
width: 400,
height: 200,
renderTo: Ext.getBody(),
items: [{
xtype: 'combobox',
reference: 'states',
publishes: 'value',
fieldLabel: 'Select State',
displayField: 'displayField',
anchor: '-15',
store: {
fields: ['valueField', 'displayField', 'fieldStatus'],
filters: [{
property: 'fieldStatus',
value: 1
}],
data: [
['1', 'MyDisplayValueFor1', 1],
['2', 'MyDisplayValueFor2', 0],
['3', 'MyDisplayValueFor3', 1]
]
}
}]
});发布于 2018-10-04 07:13:49
下面是另一种过滤方法:
var myStore = Ext.create('Ext.data.Store', {
model: 'User',
storeId:'userStore',
autoLoad: true,
load:function(){
Ext.Ajax.request({
url: '/rmwb/resources/js/app/infoBar/data/data.json',
timeout: 60000,
method: 'GET',
scope: this,
success: function(resp) {
console.log(resp.responseText);
var store = Ext.data.StoreManager.lookup('userStore');
var data = Ext.JSON.decode(resp.responseText);
var filteredData = data.insurance.filter(instance => instance["insurance_status"]==1);
store.loadData(filteredData), true);
},
failure: function(resp, opts) {
},
callback: function(options, success, resp) {
}
});
}
});发布于 2018-10-04 14:06:20
使用展开事件添加侦听器并在其中筛选存储将是一种更好的方法。我已经通过添加相关代码更新了您的代码。请在下面找到:
{
xtype:'combobox',
name:'network_comapanyId',
fieldLabel: 'Insurance Company',
displayField: 'insurance_companyName',
valueField: 'insurance_id',
store: insuranceStore,
allowBlank: false,
padding: '2 2 2 2',
width: 300,
queryMode : 'local',
listeners: {
expand : function(combo, eOpts){
combo.store.filter('insurance_status',1);
}
}
}https://stackoverflow.com/questions/52639729
复制相似问题