ExtJS 6. 将列添加到网格

Posted

技术标签:

【中文标题】ExtJS 6. 将列添加到网格【英文标题】:ExtJS 6. Adding column to grid 【发布时间】:2016-04-11 11:49:58 【问题描述】:

我想在表实例化时向网格动态添加额外的列。 因此,我在 gridPanel 中添加了 process 功能,并附有以下部分

   var clmn = 
                xtype: 'checkcolumn',
                dataIndex: 'test,
                editor: 
                    xtype: 'checkboxfield'
                
            ;
   config.columns.push(clmn);

如您所见,这里也使用了rowediting插件。

实际上列已添加并显示在屏幕上。但它没有保存已加载的正确数据,只有模型中的 defaultValue。

在行修改时(启动行编辑插件时)显示真实数据。

这里有什么问题?可能有一些刷新方法应该用于刷新元数据或类似的东西..

请注意我是通过 Sencha Architect 工作的

【问题讨论】:

我在加载事件上有监听器,用于处理记录并添加一些额外的字段。实际上只有这些字段存在问题 【参考方案1】:

columns.push() 不是这样做的正确方法。所以你应该使用here提到的重新配置方法。如果您的商店已经有新列的字段,则不必再次传递它。只需获取当前列并添加新列并重新配置网格即可。

编辑答案:您的问题比以前更容易。您可以像下面一样将您的列传递给它;

var yourGenericColumns = [
                     text: 'First Name',  dataIndex:'firstname',
                    text: 'Last Name',  dataIndex:'lastname'];

yourGenericColumns.push(text : 'Age', dataIndex: 'age');

Ext.create('YourApp.YourCustomGrid',
     columns : yourGenericColumns
);

【讨论】:

如果网格实例已经存在,则此方法有效。在我的情况下,列是在流程配置中添加的,即在构造函数之前

以上是关于ExtJS 6. 将列添加到网格的主要内容,如果未能解决你的问题,请参考以下文章

为 Ext JS 3.4 添加动态列

如何将列添加到已经存在的超网格?

将列动态添加到数据网格或使用列表中的特定列生成数据网格

ExtJS 4.2网格单元格编辑如何将列值与组合显示值绑定

将帮助按钮添加到 Extjs 网格面板标题

如何将面板添加到 rowBody 中的 extjs 网格面板