我有一个网格(ExtJS 4.2.1),其中包含来自服务器的动态列。这很好用。
这是我从服务器获取JSON字段,列和存储数据后重新配置网格的代码:
var me = this,
grid = me.getVacationView().down('[xtype=vacation.monthgrid]'),
gridStore = grid.getStore();
App.util.Ajax.request({
url: '/api/holiday/GetHolidayData',
method: 'GET',
success: function(response, opts) {
var obj = Ext.decode(response.responseText);
if (obj.success) {
gridStore.model.setFields(obj.data.metaData.fields);
grid.reconfigure(gridStore, obj.data.metaData.columns);
gridStore.loadRawData(obj.data.storeData, false);
}
}
});
在我的服务器中,我有列属性:
newColumn.renderer = "myRender";
所以这个值也在我的JSON中,但现在我不知道在我打电话的时候我必须在哪里放置“myRender
”函数:
grid.reconfigure(gridStore, obj.data.metaData.columns);
我的列正确呈现。 (我需要根据其值填充单元格的背景。)
有任何线索吗?欣赏它。
答案 0 :(得分:2)
名为renderer的字符串必须是Ext.util.Format的一部分。所以你需要:
Ext.define('App.util.Format', {
override : 'Ext.util.Format',
myRender : function() {}
});
如果你不能覆盖util.Format,作为替代方案可以eval on" renderer"重新配置之前的列。
如何编写渲染器来更改单元格值,请在此处说明:extjs change grid cell background based on value