?
GridPanel的ColumnModel render方法中record的set报错
?
描述:一个朋友做指标汇总,需要在render的时候,计算根据record中的某些数据计算汇总数据。
然后set到record中,但是很多时候都报错,大概是Ext.fly...中的dom为空。
调试了下js源码,找到问题。
?
原因:调用record的set方法时,如果不是正处于编辑状态,则会引发dirty和dom的update事件
render的时候,可能这一行的dom还可以创建出来,所以会引起找不到dom的错误。
?
解决方案
方案一:确保dom已经生成。
延时调用record.set
方案二:假装正在编辑状态。
record.editing = true;
record.set(dataIndex,value);
record.editing = false;
record.dirty = false;
?
?
--------------------
?
项目完成后,我就把这个多指标动态分组表头的汇总交叉表的抽出来做个demo给大家分享。