extjs - Extjs 有状态网格。如何检查它是否是第一次创建?
问题描述
我使用了 3 个有状态的网格,它们在同一个视图中相互替换。这些网格中的 2 个只是扩展了第一个。网格之间的唯一区别是某些列的初始可见性。用户可以在列菜单中更改此可见性,并且由于有状态配置,此设置保持不变。
当我们只考虑有状态的部分时,一切都很好。但我不知道如何设置列的初始可见性。我试过这样
initComponent: function () {
this.columnManager.getHeaderByDataIndex('firstIndex').setHidden(true);
this.columnManager.getHeaderByDataIndex('secondIndex').setHidden(true);
}
并且它有效,第一次打开网格时隐藏列,当用户更改某些内容然后再次打开应用程序时可见。只有 1 个问题 - 在列菜单中,它们始终显示为隐藏,这显然是从我的 initComponent 函数中获取的。所以我认为也许有一种方法可以检查网格是否曾经显示过。就像是:
initComponent: function () {
if (!this.getState()) {
//hide given columns here
}
}
但它也不起作用,因为状态始终为空。
解决方案
你为什么不在网格的列配置中做呢?就像是
Ext.create('Ext.grid.Panel', {
title: 'Simpsons',
store: Ext.data.StoreManager.lookup('simpsonsStore'),
columns: [{
text: 'Name',
dataIndex: 'name'
}, {
text: 'Email',
dataIndex: 'email',
flex: 1
}, {
text: 'Phone',
dataIndex: 'phone',
hidden: true // <--- HERE
}]
});
推荐阅读
- windows - 如何在谷歌云 Windows 实例上安装 xampp?
- ios - 核心数据-[Decodable.Address initWithCoder:]:发送到实例的无法识别的选择器
- jboss - Jboss ON 安装等待服务器
- r - 在下一个 mutate_at 中选择由 mutate_at 创建的正确列
- matlab - 如何在matlab中将高斯噪声添加到3D数据中
- c# - 从 Web api 反序列化 DateTime
- sml - 机器学习多态函数
- sql - 查找每个月的第一个和最后一个工作日sql
- c# - C# '1' 附近的语法不正确
- android - 如何在 Ratting Bar 中对全明星 android 进行评分?