extjs 4.1.3 Ext.override 列未执行

extjs 4.1.3 Ext.override column not getting executed

本文关键字:执行 override Ext extjs      更新时间:2023-09-26

试图覆盖一个函数:

    Ext.override(Ext.grid.column.Column, {
        prepareData: function(data, rowIdx, record, view, panel) { 
              //more code...

但是当网格加载到屏幕上时,此功能不会执行

相反,执行的函数是其父级的 prepareData 函数

Ext.grid.header.Container

一些 1 知道为什么会这样?

谢谢

这基本上是一个继承问题... 该列继承自具有此方法的 Header.Container 类(因此列类也具有它),但实际上从未为 Column 类调用此方法。

原因是网格渲染系统在 4.1.x 中的工作方式是,渲染一次由一整行(而不是单个列)完成。 这意味着 Extjs 团队(在 4.1.x 中)没有实现在单个列上使用 prepareData 函数,因此该函数永远不会在列级别使用。

我确实相信渲染系统在后来的版本中已更改为单独的列模型,这意味着此方法可能在未来的 4.1.x 版本中使用。