Javascript 仅显示在ExtJS 3.x中从外部JSON填充的列
我正在解析ExtJS中的外部JSON源代码,并希望在ExtJS网格中显示数据。 这已经非常有效了 有一组最多的字段是可预测的,但在大多数情况下,JSON中的一些字段是空的/不是空的。如果某个字段根本没有填充,则不应将其隐藏 在ExtJS 3.x中是否有动态隐藏此功能 到目前为止,我的代码是:Javascript 仅显示在ExtJS 3.x中从外部JSON填充的列,javascript,json,extjs,extjs3,Javascript,Json,Extjs,Extjs3,我正在解析ExtJS中的外部JSON源代码,并希望在ExtJS网格中显示数据。 这已经非常有效了 有一组最多的字段是可预测的,但在大多数情况下,JSON中的一些字段是空的/不是空的。如果某个字段根本没有填充,则不应将其隐藏 在ExtJS 3.x中是否有动态隐藏此功能 到目前为止,我的代码是: var store = new Ext.data.JsonStore({ url : '/data/all.json', storeId : 'mainStore', fie
var store = new Ext.data.JsonStore({
url : '/data/all.json',
storeId : 'mainStore',
fields : ['name', 'company', 'country']
});
store.load()
var columns = [];
var colModel = new Ext.grid.ColumnModel([
{header: 'Name', sortable: true, dataIndex: 'name', filterable: true, hidden: false, filter: {type: 'string'}},
{header: 'Company', sortable: true, dataIndex: 'company', filterable: true, hidden: false, filter: {type: 'string'}},
{header: 'Country', sortable: true, dataIndex: 'country', filterable: true, hidden: false, filter: {type: 'string'}},
]);
我的JSON可能看起来像:
这将显示所有字段
[ {"name": "Jon Doe", "company": "ACME Inc.", "country": "Mexico"},
{"name" : "Jane Doe", "company" : "ACME Ltd", "country" : "USA"}]
[ {"name": "Jon Doe", "company": "ACME Inc."},
{"name" : "Jane Doe", "company" : "ACME Ltd", "country" : "USA"}]
这应该只显示名称和公司
[ {"name": "Jon Doe", "company": "ACME Inc."},
{"name" : "Jane Doe", "company" : "ACME Ltd"}]
这将再次显示所有字段
[ {"name": "Jon Doe", "company": "ACME Inc.", "country": "Mexico"},
{"name" : "Jane Doe", "company" : "ACME Ltd", "country" : "USA"}]
[ {"name": "Jon Doe", "company": "ACME Inc."},
{"name" : "Jane Doe", "company" : "ACME Ltd", "country" : "USA"}]
非常感谢你的帮助 您可以创建一个计算数据并返回布尔值的函数
var showOrHideColumns = function(columnName) {
var records = store.getRange(),
hidden = false;
Ext.each(records, function(itm, idx) {
if (!itm.get(columnName)) {
hidden = true;
break;
}
});
return hidden;
};
并在标题中使用上述函数。您可能希望在代码中检查方法的范围
{ header: 'Name', hidden: showOrHideColumns }
注:以上代码未经测试