1:自定义列,包括 Group

var head1Array = []; 
head1Array.push({ field: 'Id', title: 'xxxx', rowspan: 2 }); 
head1Array.push({ title: 'yyyy', colspan: 4 }); 
var head2Array = []; 
//.each(units,function(i,unit)//colArray.push(field:′Id′,title:unit.Name);//);head2Array.push(field:′Id′,title:′111′);head2Array.push(field:′Id′,title:′222′);head2Array.push(field:′Id′,title:′333′);head2Array.push(field:′Id′,title:′444′);('#UnitScores').datagrid({ 
    columns: [head1Array, head2Array], 
    footer:[{"Id":"合计"}], 
    showFooter: true 
});

产生的效果如下:

注意,Datagrid 的 columns 的值是个数组,而数组的元素本身又是数组,相当于是个二维数组。如果不注意这一点,columns 就出不来。

2:Footer的使用

在 Footer 的使用中,必须要为 data 指定 rows 和 footer 两个属性,否则,Footer 也不会出现,如下:

var rowsx = []; 
rowsx.push({ "Id": "类别类型属性名称:" }); 
rowsx.push({ "Id": "类别类型属性值:" }); 
rowsx.push({ "Id": "文本类型属性名称:" }); 
var footer = [{ "Id": "合计" }]; 
var datax = { "rows": rowsx, "footer": footer }; 
$('#UnitScores').propertygrid('loadData',datax);

var rows = ('#questionUnitScores').datagrid('getFooterRows');     rows[0]['Id'] = 'new name';('#UnitScores').datagrid('reloadFooter');

3:对于单元格的编辑

假设列格式应该如下:

$('#Units').datagrid({ 
    pageNumber: 1, 
    //url: "@ViewBag.Domain/Paper/GetQuestionUnit", 
    columns: [[ 
        { field: 'Id', title: 'id', width: 100, editor: 'text' }, 
        { field: 'Name', title: 'name', width: 100, editor: 'text' } 
    ]], 
    pagination: false, 
    rownumbers: true, 
    onClickCell: onClickCell 
});

editor 也可以是一个类型,如下:

{field:'projectID', 
    title:'Project/Paid Leave', 
    width:100, 
    editor:{ 
        type:'combobox', 
        options:{ 
            valueField:'id', 
            textField:'DescriptionCode', 
            data:cmbprojects, 
            required:true, 
            editable:false, 
            onSelect:function(record){  
            }  
        }  
    }

默认的,EasyUI 对于编辑,是以行为单位的,也就是说,你要触发编辑,首先触发的是整行的编辑,类似如下:

$('#Units').datagrid('beginEdit', index);

上面的代码的意思是,第 index 行,可以编辑。如果要编辑单元格,一般我们用于单击某单元格,某行就可以编辑,则代码如下:

function onClickCell(index, field) { 
    ('#Units').datagrid('beginEdit', index);          var ed =('#questionUnits').datagrid('getEditor', { index: index, field: field }); 
    (ed.target).val("dddd");('#Units').datagrid('endEdit', index); 
}

在上面的方法中,第二行表示得到当前的 editor,注意,getEditor 方法必须要在 beginEdit 之后,否则,我们得到的 ed 为 null。当得到了 editor ,就可以为其赋值,如果你不想在界面中输入的话。endEdit 方法关闭行的可编辑状态,并且表示 datagrid 接收了值的修改,这个时候,我们如果查看 $('#questionUnits').datagrid('getRows'),得到的就是修改过后的值。

如果在 onClickCell 中不 endEdit,还可以在外部批量接受修改的值,使用方法:

$('#Units').datagrid('acceptChanges');

即可。

3.1 如何启动对指定单元格的修改

上面也说了,beginEdit 启动的是对行的修改,如果对行中的某个单元格启动修改,而其它单元格根本不启动修改,其中一个办法是:

$(ed.target).attr("disabled", true);

3.2 如何让 Row 获取 Editor 的额外属性

除非扩展一个自己的 Eidtor,否则 Editor 只有两个属性:type,options。但是,另外一种思路是,获取 Columns 的 Options 来达到此目的。比如,定义 Editor 为:

editor: { type: 'numberbox', options: { "UnitTemplateCode": item.Id } }

然后,得到 col,如下:

var fields = $('#UnitScores').datagrid('getColumnFields');

var col = $('#UnitScores').datagrid('getColumnOption', fields[i]);

然后,通过如下代码,就可以得到额外的属性 UnitTemplateCode。

col.editor.options.UnitTemplateCode

3.3 此 Editor 非彼 Editor

在上文中,通过:

var ed = $('#Units').datagrid('getEditor', { index: index, field: field });

我们也得到了一个 Editor,即:ed,它是一个在 EasyUI 框架内定义的对象,跟我们通过 col.editor 得到的对象不是同一个对象。

EasyUI Datagrid 自定义列、Foolter及单元格编辑的更多相关文章

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

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

  2. easyui datagrid合并相同数据的单元格。

    /** * 根据作用域填充单元格 */ function mergeCellsByField(tableID, colList) { var ColArray = colList.split(&quo ...

  3. Bootstrap:Bootstrap_table第一篇:快速用bootstrap_table(支持参数)筛选并展示数据,固定表格前几列,实现表格单元格编辑

    1.准备好css和js文件 <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstr ...

  4. Repeater多列分别合并单元格

    GridView.Repeater合并单元格可以参考http://www.cnblogs.com/zhmore/archive/2009/04/22/1440979.html,但是原文例子是合并一列的 ...

  5. POI教程之第二讲:创建一个时间格式的单元格,处理不同内容格式的单元格,遍历工作簿的行和列并获取单元格内容,文本提取

    第二讲 1.创建一个时间格式的单元格 Workbook wb=new HSSFWorkbook(); // 定义一个新的工作簿 Sheet sheet=wb.createSheet("第一个 ...

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

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

  7. easyui datagrid的列编辑

    [第十五篇]easyui datagrid的列编辑,同时插入两张表的数据进去   看图说话. 需求:插入两张表,上面的表单是第一张表的内容,下面的两个表格是第二张详情表的内容,跟第一张表的id关联 第 ...

  8. C# 对Excel 单元格格式, 及行高、 列宽、 单元格边框线、 冻结设置

    一.对行高,列宽.单元格边框等的设置 这篇简短的文字对单元格的操作总结的比较全面,特此转载过来. private _Workbook _workBook = null; private Workshe ...

  9. jqGrid单元格编辑配置,事件及方法

    转自 http://blog.csdn.net/xueshijun666/article/details/18151055 // var ret = $("#in_store_list_de ...

随机推荐

  1. UVA 11736 Debugging RAM

    模拟题: 比赛的时候忘记把1变成64位的1了,跪了好久: #include<cstdio> #include<cstring> #include<map> #inc ...

  2. 再硬写一个最简单的HTTPSERVER

    参考同上一个贴: 纯于练手. #HTTPserver import socket HOST = '' PORT = 8088 text_content = '''HTTP/1.x 200 OK Con ...

  3. Earth Mover's Distance (EMD)

    原文: http://d.hatena.ne.jp/aidiary/20120804/1344058475作者: sylvan5翻译: Myautsai和他的朋友们(Google Translate. ...

  4. Android TextView中的ellipsize属性

    TextView中有个ellipsize属性,作用是当文字过长时,该控件该如何显示,解释如下: android:ellipsize=”start”—–省略号显示在开头 android:ellipsiz ...

  5. 创建WCF的客户端

    How to: Create a Windows Communication Foundation Client To create a Windows Communication Foundatio ...

  6. mac 修改密码后 频繁输入钥匙串问题修复方法

    就一句话就是 清空钥匙串缓存 下面是具体方法 进入硬盘目录-->资源库-->Keychains 删除里面的文件夹(这个文件夹里面有 keychain-2.db keychain-2.db- ...

  7. BZOJ_1622_[Usaco2008_Open]_Word_Power_名字的能量_(字符匹配_暴力)

    描述 http://www.lydsy.com/JudgeOnline/problem.php?id=1622 给出多个文本串和模式串,求每个文本串中有多少模式串. 分析 直接暴力... #inclu ...

  8. [HDU 1565+1569] 方格取数

    HDU 1565 方格取数(1) Time Limit: 10000/5000 MS (Java/Others)    Memory Limit: 32768/32768 K (Java/Others ...

  9. curl与wget区别

    1.curl是libcurl这个库支持的,wget是一个纯粹的命令行命令.2.curl支持更多的协议.curl supports FTP, FTPS, HTTP, HTTPS, SCP, SFTP, ...

  10. nginx错误汇总

    一.Nginx出现413 Request Entity Too Large错误解决方法 Nginx出现的413 Request Entity Too Large错误,这个错误一般在上传文件的时候出现, ...