在ExtJs网格中编辑一行

时间:2012-07-19 18:08:42

标签: extjs

您好,我正在开发一个使用Ext Js的项目,需要在网格中编辑一行。我正在尝试使用我在Ext的文档中找到的插件,插件:[Ext.create('Ext.grid.plugin.RowEditing')]但是当我点击该行时,更新和取消选项会出现在网格上,但是细胞不可编辑,有谁知道发生了什么?

插件文档中的示例如下:http://docs.sencha.com/ext-js/4-0/#!/example/restful/restful.html

到目前为止我的代码:

Ext.define('GridEditavel',{

extend : 'Ext.grid.Panel',
title: 'Grid Editavel',
store: 'GridStore',
dockedItems : [ {
    xtype : 'toolbar',
    items : [ {
        xtype: 'button',
        text : i18n['vds.botao.nova.coluna'],
        icon : Webapp.icon('add1.png'),
        iconAlign : 'top',
        handler : function() {
            var gridView = Ext.ComponentQuery.query("gridpanel")[1];
            Ext.Msg.prompt('Message', 'Enter a column number:', function(
                    btn, text) {
                if (btn == 'ok' && text != null) {
                    var column = Ext.create('Ext.grid.column.Column', {
                        text : text
                    });
                    gridView.headerCt.insert(gridView.columns.length,
                            column);
                    gridView.getView().refresh();
                } else {
                    Ext.Msg.alert('Alert', 'Enter a column number!');
                }
            });
        }
    } ]
} ],
columns: [{
    header : 'Nome',
    dataIndex : 'nome',
    flex : 0.8
}],

plugins : [ Ext.create('Ext.grid.plugin.RowEditing') ]});

1 个答案:

答案 0 :(得分:2)

您需要在列中设置编辑器属性。例如:

columns:[{
header:'Nome',
dataIndex:'nome',
flex:0.8,
editor:'textfield'
}]

您还可以为编辑器使用配置对象,如下所示:

columns:[{
header:'Nome',
dataIndex:'nome',
flex:0.8,
editor:{
  xtype:'combo',
  store:'somestore'
}
}]