我有一个问题,我的网格中只有一列可编辑。我的相关网格配置是:
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
是什么。
答案 0 :(得分:3)
答案 1 :(得分:2)
所以Connor回答了我的一半问题,但我收到错误的原因是因为我的第三列有一个renderer
和一个editor
,他们并没有很好地一起玩。我稍微更改了代码以摆脱renderer
,所以我现在只有编辑器,它运行正常。