11 Stimmen

Wie liest man den Wert einer bestimmten Zelle in einem ExtJS-Raster und wie setzt man ihn?

Ich fange gerade mit ExtJS an. Ich versuche, einen Wert aus einer ausgewählten Zelle zu lesen.
Ich benutze ein EditorGrid und das Store sieht so aus :

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

Zurzeit verwende ich Folgendes, um die Zeilen und Spalten der ausgewählten Zelle abzurufen :

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

Wie kann ich den Wert einer ausgewählten Zelle im Grid lesen und diesen Wert ändern ?

13voto

Lloyd Punkte 28594

Es hängt ganz von Ihrem Auswahlmodell ab. Mit einem RowSelectionModel erhalten Sie den Datensatz der ausgewählten Zeile wie folgt:

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

Dann müssen Sie nur noch die set() Methode verwenden:

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

Natürlich sollten Sie bei einem EditorGridPanel die Bearbeitung den Steuerelementen zuweisen und nicht direkt.

0voto

DarkKnightFan Punkte 1863

-1voto

Saurabh V Punkte 1

@Llyod

Gemäß Ihrer Antwort,

Das hängt ganz von Ihrem Auswahlmodell ab. Mit einem RowSelectionModel können Sie den Datensatz der ausgewählten Zeile wie folgt erhalten:

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

Dann müssen Sie nur die Methode set() verwenden:

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

Natürlich sollten Sie bei einem EditorGridPanel die Bearbeitung den Steuerelementen zuweisen und nicht direkt.

Dies funktioniert, aber was ist, wenn ich auf den Wert der Zelle durch die Spaltennummer (z.B. 4 oder 5) anstatt durch den Spaltennamen zugreifen möchte. Ist es möglich, dasselbe zu tun?

CodeJaeger.com

CodeJaeger ist eine Gemeinschaft für Programmierer, die täglich Hilfe erhalten..
Wir haben viele Inhalte, und Sie können auch Ihre eigenen Fragen stellen oder die Fragen anderer Leute lösen.

Powered by:

X