禁用行编辑:

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

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);


                                                        }


                                               }