DataGrid 扩展
    //扩展表格,支持上传附件
    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 扩展的更多相关文章
- Datagrid扩展方法InitEditGrid{支持单元格编辑}
		//-----------------------------------------------------------------/******************************** ... 
- Datagrid扩展方法onClickCell{easyui-datagrid-扩充-支持单元格编辑}
		//-----------------------------------------------------------------/******************************** ... 
- Easyui datagrid 扩展单元格textarea editor
		datagrid 扩展单元格textarea editor by:授客 QQ:1033553122 测试环境 jquery-easyui-1.5.3 问题描述 如下,在没有扩展的情况下,初始化如下 手 ... 
- JqueryEasyUI之DataGrid扩展
		DataGrid通用合并扩展方法: $.extend($.fn.datagrid.methods, { autoMergeCells: function (jq, fields) { return j ... 
- jquery-easyui中datagrid扩展,隐藏显示表头功能
		今天,后台中需要新增一个功能,用户可以自由选择显示的列,之后保存到本地localStroage中.所以扩展了easyui中datagrid的onHeaderContextMenu方法. 使用方法: _ ... 
- datagrid 扩展 页脚 合计功能
		效果图:合计信息展示在页脚中(showFooter:true) code: <!DOCTYPE html> <html> <head> <meta chars ... 
- 给 Easyui Datagrid 扩展方法
		$.extend($.fn.datagrid.methods, { /** * 更新 非编辑列值 * @param rowIndex : 行索引 * @param cellName : 列索引或列名 ... 
- Easyui Datagrid扩展fixRownumber方法
		首先,从datagrid生成的代码,我们可以发现,在rowNumber上都有特定的class标记,datagrid-cell-rownumber,datagrid-header-rownumber. ... 
- Easyui datagrid扩展子网格detailview增删改查详解
		话不多gang,先上代码,将以下三个属性插入主网格的初始化参数中: view : detailview, //1 detailFormatter : function(index, row) { // ... 
随机推荐
- 实战:向GitHub提交代码时触发Jenkins自动构建
			当我们提交代码到GitHub后,可以在Jenkins上执行构建,但是每次都要动手去执行略显麻烦,今天我们就来实战Jenkins的自动构建功能,每次提交代码到GitHub后,Jenkins会进行自动构建 ... 
- laravel 修改重置密码模板
			Laravel里我们可以使用php artisan make:auth来生成一套默认的登陆注册重置邮箱的Authentication System,但是如何修改系统发送给用户的重置密码邮件的样式和内容 ... 
- 两个线程与stringbuffer和stringbuiler以及lock synchronized线程测试
			import java.util.concurrent.locks.Lock; import java.util.concurrent.locks.ReentrantLock; public clas ... 
- BZOJ4550: 小奇的博弈(NIMK博弈& 组合数& DP)
			4550: 小奇的博弈 Time Limit: 2 Sec Memory Limit: 256 MBSubmit: 159 Solved: 104[Submit][Status][Discuss] ... 
- 获取css最终样式
			function getStyle(obj, attr) { if (obj.currentStyle) { return obj.currentStyle[attr]; } else { retur ... 
- python 3.x 的装饰器笔记
			今天学到了python的装饰器,感觉这个东西还是稍微有些复杂,所以记录下来,方便以后的查找.虽然标题是python 3.x的装饰器,但是我也没有怎么用过python 2.x,感觉上应该是和python ... 
- sublime自动格式化代码插件HTML-CSS-JS Prettify安装
			sublime自动格式化代码插件HTML-CSS-JS Prettify安装 问题: 用 Sublime Text 格式化代码(安装 HTML-CSS-JS Prettify 插件)时,格式化时却会提 ... 
- 【angularJS】MVC
			angularJS中的mvc是借助于$scope实现的. View(视图), 即 HTML. Model(模型), 当前视图中可用的数据.scope 是模型.scope 是一个 JavaScript ... 
- MySQL Geometry扩展在地理位置计算中的效率优势
			由于在Geometry中,有相关自带函数和SPATIAL INDEX的性能优化,可以让某些位置计算的效率提升.以下是几种计算方法的效果对比. 1. 数据准备 首先创建一个数据表,这是一个店铺数据表,结 ... 
- JavaWeb框架之Struts2 ----  系列学习
			JavaWeb框架_Struts2_(七)----->文件的上传和下载 JavaWeb框架_Struts2_(六)----->Struts2的输入校验 JavaWeb框架_Struts2_ ... 
