TemplateColumn определяет свой собственный рендерер в своем конструкторе, поэтому он будет переопределять любой передаваемый параметр конфигурации рендерера. Вот конструктор для TemplateColumn:
constructor: function(cfg){
Ext.grid.TemplateColumn.superclass.constructor.call(this, cfg);
var tpl = (!Ext.isPrimitive(this.tpl) && this.tpl.compile) ? this.tpl : new Ext.XTemplate(this.tpl);
this.renderer = function(value, p, r){
return tpl.apply(r.data);
};
this.tpl = tpl;
}
Если вам нужен пользовательский рендерер, вы можете создать createInterceptor или createSequence для рендерера после того, как он был установлен в конструкторе прототипа TemplateColumn ... сначала создав последовательность в конструкторе, а затем создав перехватчик в рендерере, используя средство рендеринга передало объект конфигурации ... вот так:
Ext.grid.TemplateColumn.prototype.constructor = Ext.grid.TemplateColumn.prototype.constructor.createSequence(function(config) {
this.renderer = this.renderer.createInterceptor(config.renderer);
});