我是Extjs的新手,我正在使用版本3.2,我有Extjs Grid,其中包含一些列名称,用户名,状态,........
如果状态字段的值为0,那么我想要的是整行不可编辑
以下是我的网格代码
var grid = new Ext.grid.GridPanel({
store : store,
disableSelection: true,
id : "documentsGrid",
columns : [
{
header : "Name",
width : 120,
sortable : true,
dataIndex : 'Name',
renderer: function (value, metaData, record, rowIndex, colIndex, store) {
return getToolTip(value, metaData, record, rowIndex, colIndex, store);
},
editor : {
xtype : 'textfield',
allowBlank : true
}
},
{
header : "UserName",
width : 120,
sortable : true,
dataIndex : 'UserName',
renderer: function (value, metaData, record, rowIndex, colIndex, store) {
return getToolTip(value, metaData, record, rowIndex, colIndex, store);
},
editor : {
xtype : 'textfield',
allowBlank : true
}
},
{
header : "Status",
width : 120,
sortable : true,
dataIndex : 'Status',
renderer: function (value, metaData, record, rowIndex, colIndex, store) {
return getToolTip(value, metaData, record, rowIndex, colIndex, store);
},
editor : {
xtype : 'textfield',
allowBlank : true
}
}},
],
listeners : {
'rowdblclick' : dblclickDisableEditor,
},
viewConfig : {
forcefit : true,
deferEmptyText: false,
emptyText: 'No data Available',
},
plugins : [ editor ],
title : 'Title',
height : 500,
width : 929,
frame : false,
tbar : new Ext.Toolbar()
});
由于
答案 0 :(得分:0)
您需要将ColumnModel添加到网格中并实现它的isCellEditable方法。这是文档
的代码片段var store = new Ext.data.Store({...});
var colModel = new Ext.grid.ColumnModel({
columns: [...],
isCellEditable: function(col, row) {
var record = store.getAt(row);
if (record.get('readonly')) { // replace with your condition
return false;
}
return Ext.grid.ColumnModel.prototype.isCellEditable.call(this, col, row);
}
});
var grid = new Ext.grid.GridPanel({
store: store,
colModel: colModel,
...
});