试图覆盖一个功能:
Ext.override(Ext.grid.column.Column, {
prepareData: function(data, rowIdx, record, view, panel) {
//more code...
但是当网格加载到屏幕时,此功能不会被执行
而是执行的函数是父级的prepareData函数:
Ext.grid.header.Container
有些人知道为什么会这样?
由于
答案 0 :(得分:1)
这基本上是一个继承问题......该列继承自具有此方法的Header.Container类(因此列类也具有它),但实际上从不为Column类调用此方法。 / p>
这样做的原因是网格渲染系统在4.1.x中的工作方式使得渲染一次完成整行(而不是单个列)。这意味着使用prepareData函数在单个列上工作只是Extjs团队没有实现(在4.1.x中),因此该函数永远不会在列级别使用。
我确实认为渲染系统在以后的版本中已更改为单个列模型,这意味着此方法可能会在将来用于4.1.x版本。