开发者社区> 问答> 正文

Jquery中动态设置表中的某列可编辑

{field:'price', title:'订货批价',width:80, align:'center',formatter:function(value,rowData,rowIndex){ 
if($("#isUpdatePrice").val()=="Y"){ 
editor:'numberbox'; 
return value; 
} 
}} 

上面这个功能是Jquery做的表,$("#isUpdatePrice").val()的值是在页面加载的时候设置好的,但是我想让这一列根据这个值来判定是否可编辑,我查APi没找到方法!!希望懂的帮忙解决一下,谢谢啦

展开
收起
a123456678 2016-07-06 16:35:04 2135 0
1 条回答
写回答
取消 提交回答
  • 对Jquery写扩展的方法:  
    
     // 扩展方法  禁止被编辑的字段
       $.extend($.fn.datagrid.methods, {  
           addEditor : function(jq, param) {  
           
               if (param instanceof Array) {  
                   $.each(param, function(index, item) {  
                       var e = $(jq).datagrid('getColumnOption', item.field);  
                       e.editor = item.editor;  
                   });  
               } else {  
                   var e = $(jq).datagrid('getColumnOption', param.field);  
                   e.editor = param.editor;  
         
               }  
           },  
           removeEditor : function(jq, param) {  
               if (param instanceof Array) {  
                   $.each(param, function(index, item) {  
                       var e = $(jq).datagrid('getColumnOption', item);  
                       e.editor = {};  
                   });  
               } else {  
                   var e = $(jq).datagrid('getColumnOption', param);  
                   e.editor = {};  
               }  
           }  
       }); 
          $.extend($.fn.datagrid.defaults.editors, {   
              text: {   
                  init: function(container, options){   
                      var input = $('<input type="text" class="datagrid-editable-input">').appendTo(container);   
                      return input;   
                  },   
                  getValue: function(target){   
                     return $(target).val();   
                  },   
                 setValue: function(target, value){   
                     $(target).val(value);   
                 },   
                 resize: function(target, width){   
                     var input = $(target);   
                     if ($.boxModel == true){   
                         input.width(width - (input.outerWidth() - input.width()));   
                    } else {   
                         input.width(width);   
                    }   
                 }   
             }   
         });  
    
     
    
    这请求发出去,加载数据前触发。如果返回false,加载数据动作则退出
    
     onBeforeLoad : function(data){
              if($("#isUpdatePrice").val()=="Y"){//动态传值进行判断
               $('div[identifier='+thatId+']').find('table#innerdatagrid-l').datagrid('addEditor', {
                          field : 'price',
                          editor : {
                              type : 'numberbox',
                              options : {
                                  required : true
                              }
                          }
                      });
              }
      }
    
    1:$('div[identifier='+thatId+']').find('table#innerdatagrid-l')//获取<tble id="innerdatagrid-l">
    
    .datagrid('addEditor', field : 'price',  editor : {
                              type : 'numberbox',
                              options : {
                                  required : true
                              }
                          }
    );
    
    第一个参数“addEditor”表示调用设置编辑的方法
    
    第二个参数“price”表示{field:'price',    title:'订货批价', width:80,  align:'center'}
    
    第三个参数editor : {
                              type : 'numberbox',
                              options : {
                                  required : true
                              }
                          }
    2019-07-17 19:52:16
    赞同 展开评论 打赏
问答排行榜
最热
最新

相关课程

更多

相关电子书

更多
低代码开发师(初级)实战教程 立即下载
冬季实战营第三期:MySQL数据库进阶实战 立即下载
阿里巴巴DevOps 最佳实践手册 立即下载