如何读取和设置ExtJS网格中特定单元格的值?

时间:2010-03-15 13:27:09

标签: extjs grid

我开始使用ExtJS。我试图从被选中的单元格中读取值 我使用EditorGrid和商店看起来像这样:

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

截至目前,这是我用来检索所选单元格的行和列的内容:

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

如何读取网格中所选单元格的值并更改此值?

3 个答案:

答案 0 :(得分:12)

这完全取决于您的选择模型。使用RowSelectionModel,您可以获得所选行的记录,如下所示:

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

然后你需要做的就是使用set()方法:

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

当然,对于EditorGridPanel,你应该为控件分配编辑而不是直接。

答案 1 :(得分:0)

答案 2 :(得分:-1)

@Llyod

根据你的回答,

这完全取决于您的选择模型。使用RowSelectionModel,您可以获得所选行的记录,如下所示:

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

然后您需要做的就是使用set()方法:

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

当然,使用EditorGridPanel你应该将编辑分配给控件,而不是直接。

这是有效的,但如果我想使用列value (e.g. 4 or 5)而不是列名来访问单元格的值,该怎么办呢? 是否可以做同样的