//扩展表格,支持上传附件
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. swift实现label换行

    so easy 换行的实质为在字符串中添加"\n" so, understand???

  2. Redis学习总结之一——Redis初入

    Redis简介 Redis是一个开源的使用ANSI C语言编写.支持网络.可基于内存亦可持久化的日志型.Key-Value数据库,并提供多种语言的API. Redis是一个key-value存储系统. ...

  3. tab页面自动跳转原因【在控制ul和li的时候没有细分】

    效果图 存储buy的tab跳转js代码 $(function() { $('.tabPanel ul li').click(function(){ $(this).addClass('hit').si ...

  4. stm32寄存器版学习笔记02 串口通信

    stm32F103RCT6提供5路串口.串口的使用,只要开启串口时钟,设置相应的I/O口的模式,然后配置下波特率.数据位长度.奇偶校验等信息,即可使用. 1.串口的配置步骤 ①串口时钟使能 APB2外 ...

  5. $x \rightarrow \infty$时多项式型函数的极限

    \[ \lim_{x \rightarrow \infty} \frac{\sqrt{4x^6-5x^5}-2x^3}{\sqrt[3]{27x^6+8x}} \\ =\lim_{x \rightar ...

  6. python: how to delete a given item if it exist in the list

    a.remove('b') if thing in some_list: some_list.remove(thing)

  7. 在Eclipse中配置Tomcat7.0

    为了在Eclipse中进行struts2的测试,才发现自己机器上的Eclipse没有集成Tomcat,在网上找了半天,不是这个插件没有下载地址,就是那个有好多注意事项或者版本问题.结果,自己到tomc ...

  8. python编程规范系列--建议01~07

    本系列来自<编写高质量代码 改善python程序的91个建议>的读书笔记整理. 本书主要内容     1)容易被忽视的重要概念和常识,如代码的布局和编写函数的原则等:     2)编写py ...

  9. hadoop之 distcp(分布式拷贝)

    概述 distcp(分布式拷贝)是用于大规模集群内部和集群之间拷贝的工具. 它使用Map/Reduce实现文件分发,错误处理和恢复,以及报告生成. 它把文件和目录的列表作为map任务的输入,每个任务会 ...

  10. filter异常捕捉

    jsp中抛出一个异常 <% String action = request.getParameter("action"); if ("accountExceptio ...