Foro

Columna calculada en un Grid

0
Antes de nada daros la enhorabuena por este Site. Tengo un problema a la hora de enseñar en un grid de Extjs (v.2) una columna que es el producto de otras dos, las cuales tienen su correspondecia en la base de datos. Por ejemplo supongamos el detalle de una factura en la cual tenemos el precio unitario del producto y la cantidad demandada (ambos datos se recojen y envian a la BD) pero deseamos que el usuario pueda visualizar en la última columna en importe total (precio unitario x cantidad). ¿Cual sería el mejor modo de atacar el problema?
0
lo más fácil es hacer la multiplicación en el servidor y mandarla en el JSON o XML en un campo que sea mapeado por una columna. otra solución es utilizar la propiedad "renderer" del colum model, en esta propiedad le defines una función que tiene que regresar el "string" que se imprimirá en esa celda, y dentro de esta función haces la multiplicación <!-- s;) --><!-- s;) --> Aqui te muestro un ejemplo muy sencillo:
var colModel = new Ext.grid.ColumnModel([
    { header: "$ Sales", width: 100, sortable: true, renderer: calculate} // utilizando el rendered
 ]);
function calculate(value, metaData, record, rowIndex, colIndex, store){
    var total = record.get('precio') * record.get('cantidad');
    return total;
}
la propiedad es como un interceptor que nos permite modificar el contenido de la celda antes de que esta sea rendereada <!-- s;) --><!-- s;) --> con esto podemos modificar su contenido como su aspecto agregando un poco de HXML y CSS. saludos
0
Ok, muchas gracias por el consejo

¿Conoces a alguien que pueda responder esta pregunta? Comparte el link en Twitter o Facebook

Es necesario registrarse para poder participar en el foro! Si ya tienes una cuenta puedes entrar y comentar en este foro.