easyui datagrid的行编辑器editor 如何实现新增时可修改,编辑时,不可修改

项目出现一个需求,要求用户界面的用户名,新增时,可自由输入,编辑时,不可修改

html页面

 <table  id="gridlist" data-bind="datagrid:grid" >
    <thead>
        <tr>
            <th field="ck" checkbox="true"  readOnly:true ></th>
            <th field="OptimisticLockField"  hidden="true"></th>
            <th field="UserCode"        sortable="true" align="left"    width="80"   editor="{type:‘validatebox‘,options:{required: true }}" >用户名   </th>
            <th field="UserName"        sortable="true" align="left"    width="200"    editor="{type:‘validatebox‘,options:{required: true }}" >名称   </th>
            <th field="OriginalPassword" sortable="true" align="left"    width="200"    >密码 </th>
            <th field="Org"             sortable="true" align="left"    width="200" editor="{type:‘lookup‘,options:{required:true,lookupType:‘cloud.PcsOrg‘,window:{title:‘所属机构‘},queryParams:{State:9,Ou:false}}}" formatter="formatOrg" >所属机构 </th>
            <th field="IsEnable"        sortable="true" align="center"    width="120" editor="{type:‘checkbox‘,options:{on:1,off:0}}" formatter="com.formatCheckbox" >是否可用</th>
            <th field="IsAdmin"         align="center"  width="120"        editor="{type:‘checkbox‘,options:{on:1,off:0}}" formatter="com.formatCheckbox">是否管理员</th>
            <th field="LoginCount"      sortable="true" align="right"    width="120"  >登录次数</th>
            <th field="LastLoginDate"   sortable="true" align="left"    width="135"  formatter="com.formatDate">最后登录日期</th>
            <th field="LastLoginOU"     align="left"  width="170" hidden="true"  >最后登录组织</th>
            <th field="OrganizeNames" align="left" width="170">最后登录组织</th>
            <th field="Permit"          align="center"  width="320" formatter="formatterButton"> 操作     </th>
            <th field="Description"     align="left"  width="150"  editor="text">描述</th>

        </tr>
    </thead>
</table>

原先编辑方法

 //原先编辑方法
    this.editClick = function () {
        if (self.RowsCount() > 1) return;
        var row = self.grid.datagrid(‘getSelected‘);
        if (row == null) {
             com.message(‘error‘, "请选中需编辑的一行数据");
            return;
        }
        var index = self.grid.datagrid(‘getRowIndex‘, row);
        self.gridEdit.begin(index, row);
        self.viewType = v_edit;
        self.IsViewType(v_edit);
    };

新的编辑方法

    //新的编辑方法
    this.editClick = function () {
        if (self.RowsCount() > 1) return;
        var row = self.grid.datagrid(‘getSelected‘);
        if (row == null) {
             com.message(‘error‘, "请选中需编辑的一行数据");
            return;
        }
        //在编辑后把用户名改为查看状态
        if (row._isnew == undefined) {
            //编辑的时候把用户名改为查看状态
            $(‘#gridlist‘).datagrid(‘removeEditor‘, ‘UserCode‘);
        }
        var index = self.grid.datagrid(‘getRowIndex‘, row);
        self.gridEdit.begin(index, row);
        self.viewType = v_edit;
        self.IsViewType(v_edit);
    };

页面效果

1)新增时

2)编辑时

总结:使用 datagrid的removeEditor方法,指定对应列名,如语法:  $(‘#gridlist‘).datagrid(‘removeEditor‘, ‘UserCode‘);

原文地址:https://www.cnblogs.com/xielong/p/11609315.html

时间: 2024-08-08 03:59:38

easyui datagrid的行编辑器editor 如何实现新增时可修改,编辑时,不可修改的相关文章

Easyui Datagrid rownumbers行号四位、五位显示不完全的解决办法

Easyui Datagrid rownumbers行号四位.五位显示不完全的解决办法(引) 方法一: 相信很多人在使用easyui的时候都遇到过这个问题,当我们设置成显示Rownumber的时候,你会发现,如果Rownumber越来越大,达到三位数或者四位数的时候,Rownumber就显示不全了.这个问题纠结了不知道多少人,在群里和论坛里面都的都被问到无数次了. 以前也一直没有太认真考虑过要解决这个问题,恰好最近有点时间,就研究了一下,其实要解决也很简单,扩展一个方法就行了. 首先,从data

jquery easyui datagrid设置行样式 不可删除某行

rowStyler: function (index,row) { if (parseInt(row.ksrs) > 0) { return 'color:red'; } }, onLoadSuccess:function(data){ var rows = data.rows; for (var j = 0; j < rows.length; j++) { if (parseInt(rows[j]["ksrs"]) > 0) { $(".datagrid-

EasyUI datagrid 改变行的背景色

1.简介 使用jQuery EasyUI datagrid获取数据列表的时候,可能需求需要改变某些数据行的背景色,或者将其数据行显示为奇数偶数行不同,这是改变背景色就是非常必要的. 2.实现 使用datagrid的特性:rowStyler 实例如下: $('#keyManagement-gd').datagrid({ rowStyler:function(index,row){ if (row.classification=="Encrypting_Key" || row.classi

easyui datagrid updateRow 行号bug

版本是easyui 1.5renderRow:function(_81e,_81f,_820,_821,_822){var opts=$.data(_81e,"datagrid").options;var cc=[];if(_820&&opts.rownumbers){var _823=parseInt(_821)+1; 修这里位置if(opts.pagination){_823+=(opts.pageNumber-1)*opts.pageSize;}cc.push(&

EasyUI datagrid : 启用行号、固定列及多级表头后,头部行号位置单元格错位的问题

症状如图: 上图中,行号列与checkbox 列融合了.解决方法是在datagrid 的 onLoadSuccess 事件中加入如下代码: var opts = $(this).datagrid('options'); if(opts.rownumbers){ var dgPanel = $(this).datagrid('getPanel'); var tdRownumber = dgPanel.find('.datagrid-header-rownumber').parent(); var

jQuery easyuI datagrid 多行编辑

AlphaBlend实现透明效果,只是仅仅能针对某块区域进行alpha操作,透明度可设. TransparentBlt能够针对某种颜色进行透明,只是透明度不可设. AlphaBlend: BLENDFUNCTION bn; bn.AlphaFormat = 0; bn.BlendFlags = 0; bn.BlendOp = AC_SRC_OVER; bn.SourceConstantAlpha = 0; //透明度设置,0为不透明:255为全然透明 AlphaBlend(hMemDC,0,38

sed 行编辑器知识汇总

sed 是一种行编辑器,一次处理一行内容,处理时把当前处理的行存储在一个临时缓冲区,称为"模式空间"(pattern space),接着用sed命令处理模式空间中的内容,处理完成后把模式空间中的内容打印到屏幕上,完成一行的编辑.    注:默认情况下sed并不做原地修改,不会修改源文件 sed有两种使用方法 sed [options] command file(s)    直接编写处理命令处理    sed [options] -f scriptfile file(s)    使用预先

(原创)EasyUI中datagrid的行编辑模式中,找到特定的Editor,并为其添加事件

有时候在行编辑的时候,一个编辑框的值要根据其它编辑框的值进行变化,那么可以通过在开启编辑时,找到特定的Editor,为其添加事件 // 绑定事件, index为当前编辑行 var editors = $('#staffLogDetailGrid').datagrid('getEditors', index);     //获得当前行的编辑对象 console.info(editors[5]);  //editor[5]表示第五列这个控件 var sfgzEditor = editors[5];

EasyUI中datagrid的行编辑模式中,找到特定的Editor,并为其添加事件

有时候在行编辑的时候,一个编辑框的值要根据其它编辑框的值进行变化,那么可以通过在开启编辑时,找到特定的Editor,为其添加事件 // 绑定事件, index为当前编辑行 var editors = $('#staffLogDetailGrid').datagrid('getEditors', index); console.info(editors[5]); var sfgzEditor = editors[5]; sfgzEditor.target.bind('change',functio