easyui的datagrid可进行行编辑,有时候我们又需要在特定的情况下禁止某些字段进行编辑,请看本文介绍的方法。
代码如下:
function onClickRow(index){
if (editIndex != index){
if (endEditing()){
$('#dg').datagrid('selectRow', index).datagrid('beginEdit', index);
// 得到单元格对象,index指哪一行,field跟定义列的那个一样
var cellEdit = $('#dg').datagrid('getEditor', {index:index,field:'attr1'});
var $input = cellEdit.target; // 得到文本框对象
//$input.val('aaa'); // 设值
$input.prop('readonly',true); // 设值只读
editIndex = index;
}
else {
$('#dg').datagrid('selectRow', editIndex);
}
}
}
允许编辑的列都会定义一个editor属性,按照datagrid列编辑设计理念,不允许列编辑,即把指定列的ecitor属性赋空。其中: 'listprice'为列名。如果指定的列始终不允许编辑,在列初始化时,不设置列的editor属性即可。
var e = $("#dg").datagrid('getColumnOption', 'listprice');
e.editor = {};
不过这样的话,就是一个可编辑的状态都没有了。