easyui实现可新增不可编辑的datagrid及动态配置列隐藏/显示

来源:互联网 发布:js面向对象高级编程 编辑:程序博客网 时间:2024/05/22 10:23

前段时间遇到的一个问题,因为主键列不能让客户编辑,但是新增的时候需要可以填写,不知道有没有小伙伴跟我遇到同样的问题,这里给出我个人的解决方案:

可编辑的列需要设置editor属性,有关editor的Type设置为datetimebox请参考我的另一篇:

例如:

width : '120',title : tArray[0].title,field : 'id.'+tArray[0].field,//动态field,使用id.即取id下的属性,如有需求请参考另一篇博文.readonly:true,hidden:tArray[0].hidden,//动态配置是否显示editor : {type : 'numberbox',options : {precision : 3,required:true,disabled:true//将编辑禁用}},formatter : function(value, row) {//需要对数据做处理则在此处编写返回规则return value;}
以上已将列设为不可编辑,但是新增的时候需要编辑,我们使用如下的方式,在调用append的时候将disabled设置为false,新增完成后列会继续变成不可编辑

var ed = grid.datagrid('getEditor', {index : editIndex,field : 'id.v0'});window.setTimeout(function () {//当type为datetimebox时需要延迟设置,其余类型无需设置定时器$(ed.target).numberbox({disabled:false});//numberbox为editor对应的type}, 20);

经过如上操作就大功告成了.

0 0