1

试图覆盖一个函数:

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

但是当网格加载到屏幕上时,这个函数不会被执行

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

Ext.grid.header.Container

有些人知道为什么会这样?

谢谢

4

1 回答 1

1

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

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

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

于 2013-09-11T14:13:57.677 回答