ExtJS v7.5.1.20:修改Grid的cellWrap属性后如何正确刷新网格?
在ExtJS v7.5.1.20中修改cellWrap后正确刷新网格的方法
你的代码问题在于直接修改cellWrap属性后,ExtJS并不会自动识别这个配置变化,而且重新加载Store完全没必要——Store负责数据层面的操作,而cellWrap属于渲染层面的配置。正确的做法是用ExtJS官方的配置修改API,再刷新视图让新配置生效:
修正后的代码
onCellClick: function(view, td, index, record, tr, rindex) { var me = this, field = me.lookupReference('descriptionField'); // 用setConfig修改cellWrap配置,触发组件的更新逻辑 field.setConfig('cellWrap', true); // 刷新网格视图,让新的换行配置立即生效 me.getView().refresh(); }
关键说明
- 不要直接修改
field.cellWrap:ExtJS组件的配置项需要通过setConfig方法修改,这样才会触发内部的配置变更监听,确保组件能感知到变化。 - 无需重新加载Store:
reload()是重新拉取数据,和渲染配置无关,属于多余操作。 - 更高效的刷新方式:如果只需要刷新目标列(而非整个网格),可以把
me.getView().refresh()换成field.refresh(),性能更优。
内容的提问来源于stack exchange,提问作者Paco Perez
相关产品推荐
相关产品推荐

