easyui datagrid动态设置行、列、单元格不允许编辑

时间:2021-09-20 02:47:07

Easyui datagrid 行编辑、列编辑、单元格编辑设置

功能:

动态对datagrid 进行行、列、单元格编辑进行设置不允许编辑。

禁用行编辑:

在编辑方法调用前,对选择的行进行判断,如果不允许编辑,就返回不调用编辑方法,如果允许编辑,则继续。

e.g:      var row = $("#dg").datagrid("getSelected");        //取选择的行

                                               if(row)

                                               {

                                                        if(row.productname=='Koi')//不允许编辑的条件

                                                        return;

                                               }

                                               $('#dg').datagrid('selectRow', index)

                                                                 .datagrid('beginEdit', index);

  

动态设置禁用列编辑:

允许编辑的列都会定义一个editor属性,按照datagrid列编辑设计理念,不允许列编辑,即把指定列的ecitor属性赋空。其中: 'listprice'为列名.如果指定的列始终不允许编辑,在列初始化时,不设置列的editor属性即可。

e.g            var e = $("#dg").datagrid('getColumnOption', 'listprice');

                               e.editor = {};

禁用单元格编辑:

单元格在页面中中现的是一个hmtl控件,找到不允许编辑的单元格的html控件,设置disabled属性为true,具体的做法是:先定位到编辑的行,根据指定的列名定位到单元格,获取这个单元格的editor,每个editor对象都有以下四个属性:

这个editor的target即是呈现单元格的对象,设置这个呈现对象的disabled属性为true,就禁用编辑了。'attr1'为列名, editIndex待编辑的行

e.g

                                     var row = $("#dg").datagrid("getSelected");  

                                               if(row)

                                               {

         if(row&&row.itemid=='EST-15')

                                                        {

                                                                 var ed2 = $('#dg').datagrid('getEditor', { 'index': editIndex, field: 'attr1' });

                                                                $(ed2.target).attr("disabled", true);

                                                        }

                                               }