Rally Grid:只能编辑一列

时间:2014-07-21 19:18:52

标签: javascript rally appsdk2

我有一个问题,我的网格中只有一列可编辑。我的相关网格配置是:

    me.FeatureGrid = me.add({
        xtype: 'rallygrid',
        width: 700,
        height:300,
        scroll:'vertical',
        columnCfgs: [
            {
                text:'Feature', 
                dataIndex:'Name',
                width:400
            },{
                text:'Stories', 
                dataIndex:'ObjectID',
                sortable:true, 
                doSort: function(direction){
                    //custom sort function
                },
                width:100,
                renderer:function(oid){
                    //custom render funciton
                }
            },{
                dataIndex:'My_Custom_Field',
                width:180,
                text:'Status',                  
                editor:{
                    xtype:'combobox',
                    store: Ext.create('Ext.data.Store', {
                        fields: ['Status'],
                        data:[
                            {'Status':'Committed'},
                            {'Status':'Not Committed'}
                        ]
                    }),
                    editable: false,
                    displayField: 'Status'
                },
                renderer: function(tcs, meta, record){
                    //render function
                }
            }
        ],
        plugins: [
            Ext.create('Ext.grid.plugin.CellEditing', {
                clicksToEdit:1
            })
        ],
        viewConfig:{
            stripeRows:true
        },
        listeners: {
            beforeedit: function(editor, e){
                console.log(e.colIdx);
                return e.colIdx === 3; //only edit last col
            },
            edit: function(editor, e){
                //edit function
            }
        },
        showPagingToolbar:false,
        enableEditing:false,
        context: this.getContext(),
        store: //feature Store
    }); 

我试图只让第3列(My_Custom_Field)可编辑,因此用户无法更改第1列和第2列中的任何内容。此外,第3列有一个组合框,只有2个值可供选择,所以我有将其设置为不可编辑。我的目标是用户更新组合框,然后编辑'事件被触发,我保存更新的记录。

我的第一个问题是我不想要编辑记录cog'在我的行开头,但由于我添加了插件,它不会消失。就像我说的那样,我只想让用户可以编辑第3列。

此外,当我完成单击组合框并选择值时,我得到了一些奇怪的错误。这是错误的堆栈跟踪,我不知道网格中的null是什么。 Here is the stack trace

2 个答案:

答案 0 :(得分:3)

  • 要使单元格不可编辑,请添加"编辑器:false"到该单元格的配置。
  • 要隐藏cog,请添加" showRowActionsColumn:false"到网格配置。
  • 您获得的错误可能与项目未被正确选择进行编辑的事实有关。尝试删除" enableEditing:false"从网格配置,看看是否有帮助。

答案 1 :(得分:2)

所以Connor回答了我的一半问题,但我收到错误的原因是因为我的第三列有一个renderer和一个editor,他们并没有很好地一起玩。我稍微更改了代码以摆脱renderer,所以我现在只有编辑器,它运行正常。