2010-03-15 41 views
11

Estoy comenzando con ExtJS. Estoy tratando de leer un valor de una celda que se selecciona
utilizo un EditorGrid y la tienda en busca de esa manera:¿Cómo leer y establecer un valor de una celda específica en una cuadrícula ExtJS?

my_store = new Ext.data.JsonStore({ 
    root: 'topics', 
    totalProperty: 'totalCount', 
    idProperty: 'details_id', 

    fields: [ 
     {name : 'index', type : 'int'}, 
     {name : 'inactive', type : 'int'}, 
     {name : 'c_1',  type : 'string'}, 
     {name : 'c_2',  type : 'string'}, 
     {name : 'c_3',  type : 'string'}, 
     {name : 'c_4',  type : 'string'} 
    ], 
    proxy: new Ext.data.ScriptTagProxy({ 
     url: 'my_proxy_url' 
    }) 
}); 

A partir de ahora, esto es lo que yo uso para recuperar las filas y columnas de la celda seleccionada:

var column = grid.getSelectionModel().selection.cell[0]; 
var row = grid.getSelectionModel().selection.cell[1]; 

¿Cómo puedo leer el valor de una celda seleccionada en la cuadrícula y cambiar este valor?

Respuesta

12

Todo depende de su modelo de selección. Con un RowSelectionModel se puede obtener el registro de la fila seleccionada como así:

var sel_model = grid.getSelectionModel(); 
var record = sel_model.getSelection()[0]; 

Entonces todo lo que necesita hacer es utilizar el método set():

record.set("c_1","Test"); 

Por supuesto, con un EditorGridPanel que' Se supone que debe asignar la edición a los controles y no directamente.

+0

gracias ... mucho ... esto es lo que estaba buscando. Salud –

-1

@Llyod

como por su respuesta,

Depende por completo de su modelo de selección. Con un RowSelectionModel se puede obtener el registro de la fila seleccionada como así:

var sel_model = grid.getSelectionModel(); 
var record = sel_model.getSelection()[0]; 

Entonces todo lo que necesita hacer es usar el método set():

record.set("c_1","Test"); 

Por supuesto, con un EditorGridPanel que se supone para asignar la edición a los controles y no directamente.

esto funciona, pero qué pasa si quiero acceder al valor de la celda usando la columna value (e.g. 4 or 5) en lugar del nombre de la columna. ¿Es posible hacer lo mismo

Cuestiones relacionadas