2010-03-15 18 views
11

Sto iniziando con ExtJS. Sto cercando di leggere un valore da una cella selezionata
Io uso un EditorGrid e il negozio in cerca di simile:Come leggere e impostare un valore di una cella specifica in una griglia 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 partire da ora, questo è quello che uso per recuperare le righe e le colonne del cella selezionata:

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

Come posso leggere il valore di una cella selezionata nella griglia e modificare questo valore?

risposta

12

Dipende interamente dal modello di selezione. Con una RowSelectionModel è possibile vedere la scheda della riga selezionata come così:

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

Poi tutto quello che dovete fare è utilizzare il metodo set():

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

Naturalmente, con un te EditorGridPanel' si suppone che assegni la modifica ai controlli e non direttamente.

+0

grazie ... molto ... questo è quello che stavo cercando. salute –

-1

@Llyod

secondo la vostra risposta,

Essa dipende interamente dal vostro modello di selezione. Con una RowSelectionModel è possibile ottenere il record della riga selezionata come così:

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

Poi tutto quello che dovete fare è utilizzare il metodo set():

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

Naturalmente, con un EditorGridPanel si suppone assegnare la modifica ai controlli e non direttamente.

funziona, ma cosa succede se si desidera accedere al valore della cella utilizzando la colonna value (e.g. 4 or 5) anziché il nome della colonna. E 'possibile fare lo stesso

Problemi correlati