Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/extjs/3.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Extjs 在控制器中定义getRowClass函数_Extjs - Fatal编程技术网

Extjs 在控制器中定义getRowClass函数

Extjs 在控制器中定义getRowClass函数,extjs,Extjs,我正在使用getRowClass函数自定义网格行样式。在一个面板组件中,我有两个类似的网格,它们应该具有相同的getRowClass逻辑。我想在绑定到父组件的控制器中定义函数体。下面我放置了一些测试代码来说明这个问题。在该示例中,getRowClass设置为指向主控制器中定义的颜色函数,但是在此范围内无法看到此函数。我在extJS方面没有太多的经验,我也不知道如何解决这种范围问题,任何帮助都将不胜感激 Ext.define('Test.controller', { extend: 'Ext.ap

我正在使用getRowClass函数自定义网格行样式。在一个面板组件中,我有两个类似的网格,它们应该具有相同的getRowClass逻辑。我想在绑定到父组件的控制器中定义函数体。下面我放置了一些测试代码来说明这个问题。在该示例中,getRowClass设置为指向主控制器中定义的颜色函数,但是在此范围内无法看到此函数。我在extJS方面没有太多的经验,我也不知道如何解决这种范围问题,任何帮助都将不胜感激

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;
            }
        }

谢谢你的澄清。