Extjs 在控制器中定义getRowClass函数
我正在使用getRowClass函数自定义网格行样式。在一个面板组件中,我有两个类似的网格,它们应该具有相同的getRowClass逻辑。我想在绑定到父组件的控制器中定义函数体。下面我放置了一些测试代码来说明这个问题。在该示例中,getRowClass设置为指向主控制器中定义的颜色函数,但是在此范围内无法看到此函数。我在extJS方面没有太多的经验,我也不知道如何解决这种范围问题,任何帮助都将不胜感激Extjs 在控制器中定义getRowClass函数,extjs,Extjs,我正在使用getRowClass函数自定义网格行样式。在一个面板组件中,我有两个类似的网格,它们应该具有相同的getRowClass逻辑。我想在绑定到父组件的控制器中定义函数体。下面我放置了一些测试代码来说明这个问题。在该示例中,getRowClass设置为指向主控制器中定义的颜色函数,但是在此范围内无法看到此函数。我在extJS方面没有太多的经验,我也不知道如何解决这种范围问题,任何帮助都将不胜感激 Ext.define('Test.controller', { extend: 'Ext.ap
Ext.define('Test.controller', {
extend: 'Ext.app.ViewController',
alias: 'controller.main',
color : function(row,index){
return 'green-row';
}
});
Ext.onReady(function() {
win = new Ext.Window({
title:'Test',
layout:'fit',
width:400,
closeAction:'close',
target : document.getElementById('buttonId'),
plain: true,
controller: 'main',
items: [{
xtype: 'grid',
store: Ext.create("testApp.store.Objects"),
selType: 'checkboxmodel',
columns : [{
text : 'Column1',
dataIndex : 'Column1'
},{
text : 'Column2',
dataIndex : 'Column2'
},{
text : 'Column3',
dataIndex : 'Column3'
}],
viewConfig : {
getRowClass : 'color'
}
}]
});
Ext.create('Ext.Button', {
renderTo: Ext.getElementById('buttonId'),
text: 'Click Me',
listeners: {
click: function() {
win.show();
}
}
});
});
所有的配置对象只在类的实例化时相关,之后不会有任何影响 您可以这样解决您的问题:
listeners : {
afterrender: function(p){
p.getView().getRowClass = this.up('window').getController().color;
}
}
谢谢你的澄清。