位置:首页 » 文章/教程分享 » easyui-datagrid 行内编辑禁止字段可编辑

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 = {};

不过这样的话,就是一个可编辑的状态都没有了。