码迷,mamicode.com
首页 > 其他好文 > 详细

DataGrid 扩展

时间:2016-04-12 22:39:28      阅读:251      评论:0      收藏:0      [点我收藏+]

标签:

    
    //扩展表格,支持上传附件
    function extendDataGrid(){
        //扩展表格方法,合并单元格 ,参数为数组
           $.extend($.fn.datagrid.methods, {
            autoMergeCells : function (jq, fields) {
               return jq.each(function () {
                   var target = $(this);
                   if (!fields) {
                       fields = target.datagrid("getColumnFields", true).concat(target.datagrid("getColumnFields"));
                   }
                   var rows = target.datagrid("getRows");
                   var i = 0,
                   j = 0,
                   temp = {};
                   for (i; i < rows.length; i++) {
                       var row = rows[i];
                       j = 0;
                       for (j; j < fields.length; j++) {
                           var field = fields[j];
                           var tf = temp[field];
                           if (!tf) {
                               tf = temp[field] = {};
                               tf[row[field]] = [i];
                           } else {
                               var tfv = tf[row[field]];
                               if (tfv) {
                                   tfv.push(i);
                               } else {
                                   tfv = tf[row[field]] = [i];
                               }
                           }
                       }
                   }
                   $.each(temp, function (field, colunm) {
                       $.each(colunm, function () {
                           var group = this;
                           if (group.length > 1) {
                               var before,after, megerIndex = group[0];
                               for (var i = 0; i < group.length; i++) {
                                   before = group[i];
                                   after = group[i + 1];
                                   if (after && (after - before) == 1) {
                                       continue;
                                   }
                                   var rowspan = before - megerIndex + 1;
                                   if (rowspan > 1) {
                                       target.datagrid(‘mergeCells‘, {
                                           index : megerIndex,
                                           field : field,
                                           rowspan : rowspan
                                       });
                                   }
                                   if (after && (after - before) != 1) {
                                       megerIndex = after;
                                   }
                               }
                           }
                       });
                   });
               });
               }
           });
       
           //表格编辑列为文件上传框
           $.extend($.fn.datagrid.defaults.editors, {    
            filebox: {    
                init: function(container, options){   

                    var index=container.closest(".datagrid-row").attr("datagrid-row-index");
                       var formname="form_"+index;
                       var formhtml=$("<form id=‘"+formname+"‘ name=‘"+formname+"‘ method=‘post‘ action=‘${ctx}/khyj/ks/savedata_form‘ ENCTYPE=‘multipart/form-data‘>  </form>").appendTo(container);  //<input type=‘submit‘  value=‘提交‘>
                       var inputhidden=$("<input id=‘data_hidden‘ type=‘hidden‘  value=‘‘ />").appendTo(formhtml);
                    var input = $(‘<input class="easyui-filebox" style="width:90%;height:30px" data-options="prompt:\‘选择一个文件...\‘,buttonText:\‘选择文件\‘" > ‘).appendTo(formhtml);    //datagrid-editable-input
                    $.parser.parse(container.parent());  //解析
                    return input;    
                    
                },    
                getValue: function(target){    
                    setinputfile(target); //将 文件选择控件保存
                    var text=$(target).filebox(‘getText‘); 
                    if(text=="")
                        text=null;
                    return text; 
                },    
                setValue: function(target, value){   
                     $(target).filebox(‘setText‘,value);
                },    
                resize: function(target, width){    
                    var width=$(target).closest("td").width();
                    width=width*0.9;
                     $(target).filebox(‘resize‘,width);
                }    
            }    
        });
       
           //覆盖默认方法
           $.fn.datagrid.defaults.editors.textarea.getValue= function(target){    
            var value=$(target).val();    
            if(value.trim()=="")
                value=null;
            return value; 
        }
   }

 

DataGrid 扩展

标签:

原文地址:http://www.cnblogs.com/SunBlog/p/5384605.html

(0)
(0)
   
举报
评论 一句话评论(0
登录后才能评论!
© 2014 mamicode.com 版权所有  联系我们:gaon5@hotmail.com
迷上了代码!