Extjs 4分组列标题动态文本修改

Extjs 4 grouped columns header dynamic text modification

本文关键字:动态 文本 修改 标题 4分 Extjs      更新时间:2023-09-26

我有以下分组标题网格:

var lestore =  Ext.create('Ext.data.Store', {
       proxy: {
                type: 'memory'
                },
        autoDestroy: true,
        data:objstore
    });
 thegrid = Ext.create('Ext.grid.Panel', {
        store: lestore,
        columnLines: true,
        columns: [{text:'date'},{text:'TV',columns:{text:'400',columns:[{text:'tt1'},{text:'tt2'}]}]  ,
        title:'my title'  ,
        selModel: {
            selType: 'cellmodel'
        },
        renderTo: 'gridmpoff',
            plugins: [Ext.create('Ext.grid.plugin.CellEditing', {clicksToEdit: 1}
                )
                 ],
        listeners: {'edit': function(editor,e) {updtitle(editor,e);}
        },
        viewConfig: {
            stripeRows: true
        },
    });

我需要在创建网格后更改列文本(tt1、tt2等),而不更改标题分组。

我试着修改columns属性,但这并没有帮助,到目前为止唯一有效的是重新配置,这会扰乱编辑器。

请告知

ExtJS提供了setText方法来更改标题文本。

请参阅http://docs.sencha.com/extjs/4.2.1/#/api/Ext.grid.column.column

经过多次搜索,我发现ExtJS 4.1"reconfigure"有缺陷,而且从未被修复,因为它会干扰插件(尤其是编辑器),到目前为止,我发现的每个修复都只针对特定的用例,我的修复只是更新分组的头标签,而不涉及其他任何内容。

我使用的解决方案是简单地更新dom(同时更新extjs的列标题结构,这样,如果在某个时候修复了它们的错误,就可以简单地切换到重新配置、settext或其他方式),通过:thegrid.cotainer.dom.childNodes…

我希望这能帮助其他人摆脱这场斗争。

这是相关的:使用Ext.grid.Panel.reconfigurate()破坏网格RowEditing插件

尝试以下代码:

grid.columns[0].ownerCt.setText('Total Number');

我知道这是一个旧线程,但您可以使用Michael发布的代码:

grid.columns[0].ownerCt.setText('Total Number');

然后在你的groupHeaderTpl中使用列名,并有这样的东西:

{columnName}: {name}

通过这种方式,它将动态地将其更改为您想要的值。