¿Cómo ejecutar el método de representación predeterminado y el método de representación de elementos para algunas columnas en la cuadrícula extjs?

Ritu

Estoy creando una cuadrícula de la siguiente manera. Quiero cambiar el estilo de la fila dependiendo de una condición Además, la columna de fecha debe tener un valor en formato -> 'dmY'. Si la condición se cumple, quiero cambiar el color de la fila. Pero debido a que la columna de fecha tiene su propio método de renderizado, el renderizador predeterminado no funciona. ¿Cómo podemos ejecutar ambos métodos de renderizado?

columns : {
        defaults : {
            renderer : function(value, meta, record) {

                if (record.get('status') === false) {
                    meta.style = "color:#FF0000;";
                }
                return value;
            }
        },
        items : [  {
            text : 'Number',
            dataIndex : 'number',
            flex : 1
        }, {
            text : 'Type'),
            dataIndex : 'type',
            flex : 1
        }, {
            text : 'Date',
            dataIndex : 'date',
            renderer : Ext.util.Format.dateRenderer('d.m.Y'),
            flex : 1
        }]
    }
Matheus Hatje

El renderizador predeterminado solo se llama cuando no tiene un renderizador en una columna, puede hacer un renderizador en la columna de fecha que formatee la fecha y aplique el metaestilo también.

columns: {
    defaults: {
        renderer: function(value, meta, record) {

            if (record.get('status') === false) {
                meta.style = "color:#FF0000;";
            }
            return value;
        }
    },
    items: [{
            text: 'Number',
            dataIndex: 'number',
            flex: 1
        }, {
            text: 'Type',
            dataIndex: 'type',
            flex: 1
    },
    {
        text: 'Date',
        dataIndex: 'date',
        renderer: function(value, meta, record) {
            if (record.get('status') === false) {
                meta.style = "color:#FF0000;";
            }
            return Ext.Date.format(value, 'd.m.Y');
        },
        flex: 1
    }]
}

Usando la función de renderizador desde el controlador

Ext.define('Fiddle.view.GridController', {
            extend: 'Ext.app.ViewController',
            alias: 'controller.gridcontroller',
            dateRenderer: function (value, meta, record) {
                if(record.get('status') === false) {
                    meta.style = "color:#FF0000;";
                }
                return Ext.Date.format(value, 'd.m.Y');
            },
})

Ext.create('Ext.grid.Panel', {
    controller: 'gridcontroller',
    columns:
    //other properties...
    {
        text: 'Date',
        dataIndex: 'date',
        renderer: 'dateRenderer',
        flex: 1
    }
    //other properties...
})

Violín aquí

Este artículo se recopila de Internet, indique la fuente cuando se vuelva a imprimir.

En caso de infracción, por favor [email protected] Eliminar

Editado en
0

Déjame decir algunas palabras

0Comentarios
Iniciar sesiónRevisión de participación posterior

Artículos relacionados

TOP Lista

CalienteEtiquetas

Archivo