DataGrid以表格形式展示数据,并提供了丰富的选择、排序、分组和编辑数据的功能支持。DataGrid的设计用于缩短开发时间,并且使开发人员不需要具备特定的知识。它是轻量级的且功能丰富。单元格合并、多列标题、冻结列和页脚只是其中的一小部分功能。
<table id="dg"></table>
<table id="dg"></table>
$('#dg').datagrid({
url:'datagrid_data.json',
columns:[[
{field:'code',title:'Code',width:100},
{field:'name',title:'Name',width:100},
{field:'price',title:'Price',width:100,align:'right'}
]]
});
下面是DataGrid控件添加的属性。
属性名 | 属性值类型 | 描述 | 默认值 |
---|---|---|---|
columns | array | DataGrid列配置对象,详见列属性说明中更多的细节。 | undefined |
frozenColumns | array | 同列属性,但是这些列将会被冻结在左侧。 | undefined |
fitColumns | boolean | 真正的自动展开/收缩列的大小,以适应网格的宽度,防止水平滚动。 | false |
resizeHandle | string | 调整列的位置,可用的值有:'left','right','both'。在使用'right'的时候用户可以通过拖动右侧边缘的列标题调整列,等等。(该属性自1.3.2版开始可用) | right |
autoRowHeight | boolean | 定义设置行的高度,根据该行的内容。设置为false可以提高负载性能。 | true |
toolbar | array,selector | 顶部工具栏的DataGrid面板。可能的值: 1) 一个数组,每个工具属性都和linkbutton一样。 2) 选择器指定的工具栏。 在<div>标签上定义工具栏: $('#dg').datagrid({ toolbar: '#tb' }); <div id="tb"> <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-edit',plain:true"/a> <a href="#" class="easyui-linkbutton" data-options="iconCls:'icon-help',plain:true"/a> </div> 通过数组定义工具栏: $('#dg').datagrid({ toolbar: [{ iconCls: 'icon-edit', handler: function(){alert('编辑按钮')} },'-',{ iconCls: 'icon-help', handler: function(){alert('帮助按钮')} }] }); | null |
striped | boolean | 是否显示斑马线效果。 | false |
method | string | 该方法类型请求远程数据。 | post |
nowrap | boolean | 如果为true,则在同一行中显示数据。设置为true可以提高加载性能。 | true |
idField | string | 指明哪一个字段是标识字段。 | null |
url | string | 一个URL从远程站点请求数据。 | null |
data | array,object | 数据加载(该属性自1.3.2版开始可用) 代码示例: $('#dg').datagrid({ data: [ {f1:'value11', f2:'value12'}, {f1:'value21', f2:'value22'} ] }); | null |
loadMsg | string | 在从远程站点加载数据的时候显示提示消息。 | Processing, please wait … |
pagination | boolean | 如果为true,则在DataGrid控件底部显示分页工具栏。 | false |
rownumbers | boolean | 如果为true,则显示一个行号列。 | false |
singleSelect | boolean | 如果为true,则只允许选择一行。 | false |
checkOnSelect | boolean | 如果为true,当用户点击行的时候该复选框就会被选中或取消选中。 如果为false,当用户仅在点击该复选框的时候才会呗选中或取消。 (该属性自1.3版开始可用) | true |
selectOnCheck | boolean | 如果为true,单击复选框将永远选择行。 | true |
pagePosition | string | 定义分页工具栏的位置。可用的值有:'top','bottom','both'。 (该属性自1.3.2版开始可用) | bottom |
pageNumber | number | 在设置分页属性的时候初始化页码。 | 1 |
pageSize | number | 在设置分页属性的时候初始化页面大小。 | 10 |
pageList | array | 在设置分页属性的时候 初始化页面大小选择列表。 | [10,20,30,40,50] |
queryParams | object | 在请求远程数据的时候发送额外的参数。 代码示例: $('#dg').datagrid({ queryParams: { name: 'easyui', subject: 'datagrid' } }); | {} |
sortName | string | 定义哪些列可以进行排序。 | null |
sortOrder | string | 定义列的排序顺序,只能是'asc'或'desc'。 | asc |
multiSort | boolean | 定义是否允许多列排序。(该属性自1.3.4版开始可用) | false |
remoteSort | boolean | 定义从服务器对数据进行排序。 | true |
showHeader | boolean | 定义是否显示行头。 | true |
showFooter | boolean | 定义是否显示行脚。 | false |
scrollbarSize | number | 滚动条的宽度(当滚动条是垂直的时候)或高度(当滚动条是水平的时候)。 | 18 |
rowStyler | function | 返回样式如'background:red'。带2个参数的函数: rowIndex:该行索引从0开始 rowData:与此相对应的记录行。 代码示例: $('#dg').datagrid({ rowStyler: function(index,row){ if (row.listprice>80){ return 'background-color:#6293BB;color:#fff;'; } } }); 译者注(1.3.4新增方式):$('#dg').datagrid({ rowStyler: function(index,row){ if (row.listprice>80){ return 'rowStyle'; // rowStyle是一个已经定义了的ClassName(类名) } } }); | |
loader | function | 定义如何从远程服务器加载数据。返回false可以放弃本次请求动作。该函数接受以下参数: param:参数对象传递给远程服务器。 success(data):当检索数据成功的时候会调用该回调函数。 error():当检索数据失败的时候会调用该回调函数。 | json loader |
loadFilter | function | 返回过滤数据显示。该函数带一个参数'data'用来指向源数据(即:获取的数据源,比如Json对象)。您可以改变源数据的标准数据格式。这个函数必须返回包含'total'和'rows'属性的标准数据对象。 代码示例: // 从Web Service(asp.net、java、php等)输出的JSON对象中移除'd'对象 $('#dg').datagrid({ loadFilter: function(data){ if (data.d){ return data.d; } else { return data; } } }); | |
editors | object | 定义在编辑行的时候使用的编辑器。 | 预定义编辑器 |
view | object | 定义DataGrid的视图。 | 默认视图 |
DataGrid列是一个数组对象,该元素也是一个数组对象。元素数组里面的元素是一个配置对象,它用来定义每一个列字段。
代码示例:
属性名称 | 属性值类型 | 描述 | 默认值 |
---|---|---|---|
title | string | 列标题文本。 | undefined |
field | string | 列字段名称。 | undefined |
width | number | 列的宽度。如果没有定义,宽度将自动扩充以适应其内容。 | undefined |
rowspan | number | 指明将占用多少行单元格(合并行)。 | undefined |
colspan | number | 指明将占用多少列单元格(合并列)。 | undefined |
align | string | 指明如何对齐列数据。可以使用的值有:'left','right','center'。 | undefined |
halign | string | 指明如何对齐列标题。可以使用的值有:'left','right','center'。如果没有指定,则按照align属性进行对齐。 (该属性自1.3.2版开始可用) | undefined |
sortable | boolean | 如果为true,则允许列使用排序。 | undefined |
order | string | 默认排序数序,只能是'asc'或'desc'。 (该属性自1.3.2版开始可用) | undefined |
resizable | boolean | 如果为true,允许列改变大小。 | undefined |
fixed | boolean | 如果为true,在"fitColumns"设置为true的时候阻止其自适应宽度。 | undefined |
hidden | boolean | 如果为true,则隐藏列。 | undefined |
checkbox | boolean | 如果为true,则显示复选框。该复选框列固定宽度。 | undefined |
formatter | function | 单元格formatter(格式化器)函数,带3个参数: value:字段值。 rowData:行记录数据。 rowIndex: 行索引。 代码示例: $('#dg').datagrid({ columns:[[ {field:'userId',title:'User', width:80, formatter: function(value,row,index){ if (row.user){ return row.user.name; } else { return value; } } } ]] }); | undefined |
styler | function | 单元格styler(样式)函数,返回如'background:red'这样的自定义单元格样式字符串。该函数带3个参数: value:字段值。 rowData:行记录数据。 rowIndex: 行索引。 代码示例: $('#dg').datagrid({ columns:[[ {field:'listprice',title:'List Price', width:80, align:'right', styler: function(value,row,index){ if (value < 20){ return 'background-color:#ffee00;color:red;'; } } } ]] }); | undefined |
sorter | function | 用来做本地排序的自定义字段排序函数,带2个参数: a:第一个字段值。 b:第二个字段值。 代码示例: $('#dg').datagrid({ remoteSort: false, columns: [[ {field:'date',title:'Date',width:80,sortable:true,align:'center', sorter:function(a,b){ a = a.split('/'); b = b.split('/'); if (a[2] == b[2]){ if (a[0] == b[0]){ return (a[1]>b[1]?1:-1); } else { return (a[0]>b[0]?1:-1); } } else { return (a[2]>b[2]?1:-1); } } } ]] }); | undefined |
editor | string,object | 指明编辑类型。当字符串指明编辑类型的时候,对象包含2个属性: type:字符串,该编辑类型可以使用的类型有:text,textarea,checkbox,numberbox,validatebox,datebox,combobox,combotree。 options:对象,object, 该编辑器属性对应于编辑类型。 | undefined |