1、不要在该grid的initComponent方法里去请求后台得到动态显示的列,因为callParent()方法会先于你的请求后台的代码执行,所以当调用父类方法的时候你的columns和store都还没创建好,这个时候会有错。
应该在创建该grid的时候将该grid的方法放到请求后台参数的方法里,然后在initComponent里得到该请求返回的数据封装columns和store,这样保证在调用父类方法前就完成了columns和store的创建。
例如创建的grid的类名叫做:Ext.app.wris.rain.RtuResultListPanel,我要在点击按钮的时候创建该grid。那么调用代码如下:
其中 rainController.searchTimeColumnRain是后台对应的方法,res是定义的一个全局变量。要是能有办法不定义全局变量就能在Ext.app.wris.rain.RtuResultListPanel的initComponent方法里调用就好了,还没想到。
2.封装columns和store的fields不要死拼字符串,应该这样写:
columns 就是列模型的集合,col 是每个列