//扩展表格,支持上传附件
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 扩展的更多相关文章

  1. Datagrid扩展方法InitEditGrid{支持单元格编辑}

    //-----------------------------------------------------------------/******************************** ...

  2. Datagrid扩展方法onClickCell{easyui-datagrid-扩充-支持单元格编辑}

    //-----------------------------------------------------------------/******************************** ...

  3. Easyui datagrid 扩展单元格textarea editor

    datagrid 扩展单元格textarea editor by:授客 QQ:1033553122 测试环境 jquery-easyui-1.5.3 问题描述 如下,在没有扩展的情况下,初始化如下 手 ...

  4. JqueryEasyUI之DataGrid扩展

    DataGrid通用合并扩展方法: $.extend($.fn.datagrid.methods, { autoMergeCells: function (jq, fields) { return j ...

  5. jquery-easyui中datagrid扩展,隐藏显示表头功能

    今天,后台中需要新增一个功能,用户可以自由选择显示的列,之后保存到本地localStroage中.所以扩展了easyui中datagrid的onHeaderContextMenu方法. 使用方法: _ ...

  6. datagrid 扩展 页脚 合计功能

    效果图:合计信息展示在页脚中(showFooter:true) code: <!DOCTYPE html> <html> <head> <meta chars ...

  7. 给 Easyui Datagrid 扩展方法

    $.extend($.fn.datagrid.methods, { /** * 更新 非编辑列值 * @param rowIndex : 行索引 * @param cellName : 列索引或列名 ...

  8. Easyui Datagrid扩展fixRownumber方法

    首先,从datagrid生成的代码,我们可以发现,在rowNumber上都有特定的class标记,datagrid-cell-rownumber,datagrid-header-rownumber. ...

  9. Easyui datagrid扩展子网格detailview增删改查详解

    话不多gang,先上代码,将以下三个属性插入主网格的初始化参数中: view : detailview, //1 detailFormatter : function(index, row) { // ...

随机推荐

  1. caffe配置

    2016年最开心的事哈哈哈. 基本参照它. http://www.linuxdiyf.com/linux/12708.html 有时间在稍微写点. linux下:(装上GPU之后,在bois貌似禁止了 ...

  2. python 之头像上传,预览

    上传头像 我们需要实现的效果是:当我们点击默认头像,用户可以进行选择要上传的头像文件,其原理就是头像的img标签与文件input(file类型)框重合或者关联,可以通过如下两种方式进行实现: 方法一l ...

  3. Maven部署Jetty服务器pom.xml

    <project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/20 ...

  4. JAVA多线程----用--取钱问题2

    在该示例代码中,TestAccount类是测试类,主要实现创建帐户Account类的对象,以及启动学生线程StudentThread和启动家长线程GenearchThread.在StudentThre ...

  5. Sprint Boot 学习Q&A

    [ERROR] Failed to execute goal pl.project13.maven:git-commit-id-plugin:2.1.11:revision (default) on ...

  6. shell编程--遍历目录下的文件

    假定目录text下有如下文件      目录:dir_1.dir_2.dir_3 文件:text_1.text_2 遍历目录下所有的文件是目录还是文件 if -- if类型: #!bin/sh for ...

  7. CODEVS3013 单词背诵 【Hash】【MAP】

    CODEVS3013 单词背诵 题目描述 Description 灵梦有n个单词想要背,但她想通过一篇文章中的一段来记住这些单词. 文章由m个单词构成,她想在文章中找出连续的一段,其中包含最多的她想要 ...

  8. vector 中的clear()

    为什么clear之后,还是输出fdsafdsa.有什么办法可以真正清空之? 因为对于vector,clear并不真正释放内存(这是为优化效率所做的事),clear实际所做的是为vector中所保存的所 ...

  9. sentry docker-compsoe 安装以及简单使用

    1. 准备环境 docker docker-compose     2. 安装 a. docker-compose git clone git clone https://github.com/get ...

  10. 异常处理--Exception(一)

    很诱人的标题,今天不是给大家介绍,而是跟大家讨论些问题. 在做开发的这几年中,大大小小的项目也经历了很多,但无论那个项目中,都没有真正的对Exception进行完整的处理.虽然我们在学C#的时候,经常 ...