我正在使用Extjs3.2和Row编辑器插件用于Grid.I有添加,修改和删除按钮。我有四个单元格格式Say(id,firstname,lastname,roll no)。如果添加所有字段应该可编辑,以便他可以添加所有四个字段。但是假设如果单击一个现有记录并单击修改我想要id字段不可编辑。如何实现此
以下是我的代码
var grid= new Ext.grid.GridPanel({
store : store_surv,
id : "grid_surv",
columns : [
{
header : "Id",
width : 120,
sortable : true,
dataIndex : 'id',
renderer: function (value, metaData, record, rowIndex, colIndex, store) {
return getToolTip(value, metaData, record, rowIndex, colIndex, store);
} ,
editor : {
xtype : 'textfield',
allowBlank : true
}
}
{
header : "First Name",
width : 120,
sortable : true,
dataIndex : 'fname',
renderer: function (value, metaData, record, rowIndex, colIndex, store) {
return getToolTip(value, metaData, record, rowIndex, colIndex, store);
} ,
editor : {
xtype : 'textfield',
allowBlank : true
}
}
{
header : "Last Name",
width : 120,
sortable : true,
dataIndex : 'lname',
renderer: function (value, metaData, record, rowIndex, colIndex, store) {
return getToolTip(value, metaData, record, rowIndex, colIndex, store);
} ,
editor : {
xtype : 'textfield',
allowBlank : true
}
},
{
header : "Roll No",
width : 120,
sortable : true,
dataIndex : 'roll',
renderer: function (value, metaData, record, rowIndex, colIndex, store) {
return getToolTip(value, metaData, record, rowIndex, colIndex, store);
} ,
editor : {
xtype : 'textfield',
allowBlank : true
}
} ],
title : 'Student List',
height : 350,
width : 750,
frame : false
})
答案 0 :(得分:0)
向您的编辑器对象添加一个afteredit
侦听器,并在该侦听器中调用id文本字段上的setDisabled(true)
方法,如下所示:
var idTextField = Ext.create({
xtype : 'textfield',
allowBlank : true
});
var editor = new Ext.ux.grid.RowEditor({
saveText: 'Update',
listeners: {
afteredit: function(){
idTextField.setDisabled(true);
}
}
});
通过用上面提到的旧文本字段替换来修改现有代码:
...
{
header : "Id",
width : 120,
sortable : true,
dataIndex : 'id',
renderer: function (value, metaData, record, rowIndex, colIndex, store) {
return getToolTip(value, metaData, record, rowIndex, colIndex, store);
},
editor : idTextField
}
...
所以我们刚刚更改了编辑器属性。