(转)jQuery EasyUI API - Grid - DataGrid [原创汉化官方API]

DataGrid

  继承自 .fn.datagrid.defaults.

 

  DataGrid控件显示数据以表格的形式提供了丰富的选择,支持排序,组和编辑数据。

  DataGrid控件被设计来减少开发时间和要求开发商没有特定的知识。它是轻量级的和功能丰富的。合并单元格,多列标题,冻结列和页脚是仅有的几个特点。

 

[依赖于]

  • panel
  • resizable
  • linkbutton
  • pagination
 
[使用实例]

在HTML标签中,从现有的元素创建表元素、定义列、行中的数据:

 1 <table class="easyui-datagrid">  
 2     <thead>  
 3         <tr>  
 4             <th data-options="field:'code'">Code</th>  
 5             <th data-options="field:'name'">Name</th>  
 6             <th data-options="field:'price'">Price</th>  
 7         </tr>  
 8     </thead>  
 9     <tbody>  
10         <tr>  
11             <td>001</td><td>name1</td><td>2323</td>  
12         </tr>  
13         <tr>  
14             <td>002</td><td>name2</td><td>4612</td>  
15         </tr>  
16     </tbody>  
17 </table>  

 

通过<table>标签创建DataGrid,在table表格里嵌套<th>标签定义。

 1 <table class="easyui-datagrid" style="width:400px;height:250px"  
 2         data-options="url:'datagrid_data.json',fitColumns:true,singleSelect:true">  
 3     <thead>  
 4         <tr>  
 5             <th data-options="field:'code',width:100">Code</th>  
 6             <th data-options="field:'name',width:100">Name</th>  
 7             <th data-options="field:'price',width:100,align:'right'">Price</th>  
 8         </tr>  
 9     </thead>  
10 </table>  

 

使用Javascript也可以创建DataGrid:

1 <table id="dg"></table>  
1 $('#dg').datagrid({   
2     url:'datagrid_data.json',   
3     columns:[[   
4         {field:'code',title:'Code',width:100},   
5         {field:'name',title:'Name',width:100},   
6         {field:'price',title:'Price',width:100,align:'right'}   
7     ]]   
8 });  

 

使用一些参数查询数据:

1 $('#dg').datagrid('load', {   
2     name: 'easyui',   
3     address: 'ho'  
4 });  

 

改变数据到服务器后,更新之前的数据:

1 $('#dg').datagrid('reload');    // 重新加载当前页的数据 

 

[DataGrid 属性]

属性继承自 panel 面板,下面是从 panel 新增的属性列表:

名称类型描述默认值
columnsarrayDataGrid列的配置对象,更多详细请参见列属性。undefined
frozenColumnsarray相同列的属性,但是这些列会被冻结在左边。undefined
fitColumnsboolean为“true”则自动 展开/收缩 列的大小,为了自动填充Grid的宽度,防止出现水平滚动条。false
autoRowHeightboolean定义是否基于行的内容设置行高,设置“false”可以提高加载性能。true
toolbararray,selectorDataGrid面板顶部的 ToolBar 工具条,可以设置的值如下:
1) 一个数组,每个options项是相同的LinkButton。
2) 一个 selector 选择器 指定 ToolBar 工具条。

使用<div>标签定义 ToolBar 工具条:

 1 $('#dg').datagrid({
 2     toolbar: '#tb'
 3 });
 4 <div id="tb">
 5   <a href="#" 
 6       class="easyui-linkbutton" 
 7       data-options="iconCls:'icon-edit',plain:true"></a>
 8   <a href="#" 
 9       class="easyui-linkbutton" 
10       data-options="iconCls:'icon-help',plain:true"></a>
11 </div>

 

通过数组定义 ToolBar:

1 $('#dg').datagrid({
2     toolbar: [{
3         iconCls: 'icon-edit',
4         handler: function(){alert('edit')}
5     },'-',{
6         iconCls: 'icon-help',
7         handler: function(){alert('help')}
8     }]
9 });
null
stripedboolean设置“True”实现各行变色的功能。false
methodstring这个方法需要远程数据类型。post
nowrapboolean设置为“True”则将数据显示在一行内,设置为“True”可以提高加载性能。true
idFieldstring指定哪些字段是标识字段。null
urlstring一个用于请求远程站点的URL路径。null
loadMsgstring当从远程站点加载数据时,显示一个提示信息。Processing, please wait …
paginationboolean设置为“True”则在DataGrid底部显示分页工具条按钮。false
rownumbersboolean设置为“True”则显示行数列。false
singleSelectboolean设置为“True”则只允许选择一行。false
checkOnSelectboolean

如果设置为“True”,当用户点击一行时 选中/取消选中 该复选框。

如果设置为“False”,当用户准确点击复选框时,选中/取消选中 该复选框。
这个属性时1.3版本之后可用的。

true
selectOnCheckboolean

如果设置为True,点击复选框将总会选择行。

如果设置为False,选中行将不会选中该复选框。
这个属性在1.3版本后可用。

true
pagePositionstring定义分页工具条的位置,有效值是:'top','bottom','both'。
这个属性在1.3版本后可用。
bottom
pageNumbernumber当设置分页的属性时,初始化页面数量。1
pageSizenumber当设置分页属性时,初始化页面大小。10
pageListarray当设置分页属性时,初始化页面大小选择列表、[10,20,30,40,50]
queryParamsobject当请求远程数据时,附带发送额外的参数。

代码示例:

1 $('#dg').datagrid({
2     queryParams: {
3         name: 'easyui',
4         subject: 'datagrid'
5     }
6 });
{}
sortNamestring定义哪些列可以被排序。null
sortOrderstring定义列的排序方式,只能是升序“asc”或降序“desc”。asc
remoteSortboolean定义是否接受来自远程服务器的排序数据。true
showHeaderboolean定义是否显示行的页眉。true
showFooterboolean定义是否显示行的页脚。false
scrollbarSizenumber滚动条的款(当是垂直滚动条时) 或者 高(当是水平滚动条的时候)18
rowStylerfunction返回例如 'background:red' 一样的风格样式,这个方法带两个参数:
rowIndex: 行的下标索引,从0开始
rowData: 符合记录数的行

代码示例:

1 $('#dg').datagrid({
2     rowStyler: function(index,row){
3         if (row.listprice>80){
4             return 'color:#fff;';
5         }
6     }
7 });
 
loaderfunction

定义如何从远程服务器加载数据,返回“false”可以终止这个请求。

这个函数需要以下参数:
param: 向远程服务器传递的参数对象。
success(data): 这个回调函数会在检索数据成功后调用。
error(): 这个函数会在检索数据失败时调用。

json loader
loadFilterfunction

显示返回过滤后的数据。这个函数带一个参数 'data',它表示原始数据。

你可以将原始数据源更改为标准的数据格式。

这个函数必须返回一个包含“total”和“rows”属性的标准数据对象。

代码示例:

 1 // 从 ASP.NET Web Service Json 输出中删除“d”对象
 2 $('#dg').datagrid({
 3     loadFilter: function(data){
 4         if (data.d){
 5             return data.d;
 6         } else {
 7             return data;
 8         }
 9     }
10 });
 
editorsobject定义编辑行时的编辑器。predefined editors
viewobject定义DataGrid的View视图。default view

 

 


 

 
[列属性]

DataGrid的列是一个数组对象,它的元素也是一个数组。元素的元素数组是一个配置对象,它定义了每一列的字段。

 

代码示例:

 1 columns:[[   
 2     {field:'itemid',title:'Item ID',rowspan:2,width:80,sortable:true},   
 3     {field:'productid',title:'Product ID',rowspan:2,width:80,sortable:true},   
 4     {title:'Item Details',colspan:4}   
 5 ],[   
 6     {field:'listprice',title:'List Price',width:80,align:'right',sortable:true},   
 7     {field:'unitcost',title:'Unit Cost',width:80,align:'right',sortable:true},   
 8     {field:'attr1',title:'Attribute',width:100},   
 9     {field:'status',title:'Status',width:60}   
10 ]]  
名称类型描述默认值
titlestring列的标题文本。undefined
fieldstring列的字段名称。undefined
widthnumber列的宽度,如果没有定义,宽度将会自动扩展以容纳其内容。undefined
rowspannumber表示应该占据多少行。undefined
colspannumber表示应该占据多少列。undefined
alignstring表示如何排列对齐列数据,可以用的值有:'left','right','center'。undefined
sortableboolean设置为“True”则指定列可以排序。undefined
resizableboolean设置为“True”则可以调整列的大小。undefined
hiddenboolean设置为“True”则隐藏列。undefined
checkboxboolean设置为“True”则显示一个复选框,该复选框有固定的宽度。undefined
formatterfunction单元格格式化的函数,带有三个参数:
value: 字段值
rowData: 行数据记录
rowIndex: 行下标

代码示例:

 1 $('#dg').datagrid({
 2     columns:[[
 3         {field:'userId',title:'User', width:80,
 4             formatter: function(value,row,index){
 5                 if (row.user){
 6                     return row.user.name;
 7                 } else {
 8                     return value;
 9                 }
10             }
11         }
12     ]]
13 });
undefined
stylerfunction单元格样式函数,返回例如 'background:red' 一样的用户自定义的样式字符串。这个函数带有三个参数:
value: 字段值
rowData: 行数据记录
rowIndex: 行下标

代码示例:

 1 $('#dg').datagrid({
 2     columns:[[
 3         {field:'listprice',title:'List Price', width:80, align:'right',
 4             styler: function(value,row,index){
 5                 if (value < 20){
 6                     return 'color:red;';
 7                 }
 8             }
 9         }
10     ]]
11 });
undefined
sorterfunction用来做局部排序的自定义字段的排序功能,带有两个参数:
a: 第一个字段值
b: 第二个字段值

代码示例:

 1 $('#dg').datagrid({
 2     remoteSort: false,
 3     columns: [[
 4         {field:'date',title:'Date',width:80,sortable:true,align:'center',  
 5             sorter:function(a,b){  
 6                 a = a.split('/');  
 7                 b = b.split('/');  
 8                 if (a[2] == b[2]){  
 9                     if (a[0] == b[0]){  
10                         return (a[1]>b[1]?1:-1);  
11                     } else {  
12                         return (a[0]>b[0]?1:-1);  
13                     }  
14                 } else {  
15                     return (a[2]>b[2]?1:-1);  
16                 }  
17             }  
18         }
19     ]]
20 });
undefined
editorstring,object显示编辑类型,当字符串指明了编辑类型,对象包含两个属性:
type: string,编辑的类型,可以是的值:text,textarea,checkbox,numberbox,validatebox,datebox,combobox,combotree.
options: object, 对应于编辑类型的编辑器选项。
undefined

 

 


 

 
Editor

重写默认值 $.fn.datagrid.defaults.editors.

 

每个 editor 编辑器都有以下行为:

名称参数描述
initcontainer, options初始化 Editor 编辑器,并返回目标对象。
destroytarget如果有必要则摧毁 Editor 编辑器。
getValuetarget从 Editor 编辑器获取数据值。
setValuetarget , value设置 Editor 编辑器的数据值。
resizetarget , width如果需要则调整 Editor 编辑器。

例如,在Editor编辑器中如下定义:

 1 $.extend($.fn.datagrid.defaults.editors, {   
 2     text: {   
 3         init: function(container, options){   
 4             var input = $('<input type="text" class="datagrid-editable-input">').appendTo(container);   
 5             return input;   
 6         },   
 7         getValue: function(target){   
 8             return $(target).val();   
 9         },   
10         setValue: function(target, value){   
11             $(target).val(value);   
12         },   
13         resize: function(target, width){   
14             var input = $(target);   
15             if ($.boxModel == true){   
16                 input.width(width - (input.outerWidth() - input.width()));   
17             } else {   
18                 input.width(width);   
19             }   
20         }   
21     }   
22 });  
 

 


 
 
[DataGrid View]

重写默认值:$.fn.datagrid.defaults.view.

该视图是一个对象,它会告诉DataGrid中如何呈现行。该对象必须定义了一下功能函数:

名称参数描述
rendertarget, container, frozen数据加载时调用。
target: Dom对象,DataGrid对象。
container: 行容器。
frozen: 表示是否呈现冻结容器。
renderFootertarget, container, frozen这是一个可选的功能,呈现页脚。
renderRowtarget, fields, frozen, rowIndex, rowData这是一个可选的功能,函数将会被render调用。
refreshRowtarget, rowIndex定义如何刷新指定的行。
onBeforeRendertarget, rows视图Render前触发。
onAfterRendertarget视图在Render后触发。

[事件]

这个时间继承自 panel 面板,一下是DataGrid另增的事件:

名称参数描述
onLoadSuccessdata数据加载时触发。
onLoadErrornone当加载远程数据时发生一些错误的时候触发。
onBeforeLoadparam在一个请求加载数据之前触发,如果返回“false”则取消加载操作。
onClickRowrowIndex, rowData当用户点击一行时触发,这个参数包括:
rowIndex: 单击行的索引,从0开始。
rowData: 对应单击的行记录
onDblClickRowrowIndex, rowData当用户双击行时触发,这些参数包括:
rowIndex: 单击行的索引,从0开始。
rowData: 对应点击的行记录
onClickCellrowIndex, field, value当用户点击单元格时触发。
onDblClickCellrowIndex, field, value当用户双击单元格时触发。

代码示例:

1 // 当双击一个单元格时,赋予Editor编辑器焦点,以开始编辑
2 $('#dg').datagrid({
3     onDblClickCell: function(index,field,value){
4         $(this).datagrid('beginEdit', index);
5         var ed = $(this).datagrid('getEditor', {index:index,field:field});
6         $(ed.target).focus();
7     }
8 });
onSortColumnsort, order当用户排序一列时触发,这些参数包括:
sort: 排序的列的字段名称
order: 排序列的顺序
onResizeColumnfield, width当用户调整列大小时触发。
onSelectrowIndex, rowData当用户选择一行时触发,这些参数包括:
rowIndex: 选择行的索引,从0开始
rowData: 对应着所选择的行记录
onUnselectrowIndex, rowData当用户取消选择行时触发,这些参数包括:
rowIndex: 取消选择的行下标,从0开始
rowData: 对应的取消选择的行记录。
onSelectAllrows当用户选择所有行时触发。
onUnselectAllrows当用户取消选中所有行时触发。
onCheckrowIndex,rowData当用户勾选一行时触发,这些参数包括:
rowIndex: 勾选的行下标,从0开始
rowData: 对应着勾选的行记录
这个事件在1.3版本后有效。
onUncheckrowIndex,rowData当用户取消勾选一行时触发,这些参数包括:
rowIndex: 取消选中的行下标,从0开始
rowData: 取消选中的行记录
这个事件在1.3版本后生效
onCheckAllrows当用户勾选所有行时触发,这个事件在1.3版本后有效。
onUncheckAllrows当用户取消勾选所有行时触发,这个事件在1.3版本后生效
onBeforeEditrowIndex, rowData当用户开始编辑一行时触发,这些参数包括:
rowIndex: 编辑行的下标,从0开始
rowData: 对应着编辑的行记录
onAfterEditrowIndex, rowData, changes当用户完成编辑时触发,这些参数包括:
rowIndex: 编辑的行下标,从0开始
rowData: 编辑的行记录
changes: 更改的 字段/值 对。
onCancelEditrowIndex, rowData当用户取消编辑一行时触发,这些参数包括:
rowIndex: 编辑的行下标,从0开始
rowData: 对应着编辑的行记录
onHeaderContextMenue, field当DataGrid的标题是右键点击时触发。
onRowContextMenue, rowIndex, rowData当行时右键点击时触发。

[方法]
名称参数描述
optionsnone返回options选项对象。
getPagernone返回paper页面对象。
getPanelnone返回panel面板对象、
getColumnFieldsfrozen返回列字段。如果冻结设置为true,则冻结列字段返回。
代码示例:
1 var opts = $('#dg').datagrid('getColumnFields');    // 获取非冻结列
2 var opts = $('#dg').datagrid('getColumnFields', true); // 获取冻结列
getColumnOptionfield返回指定列的选项option设置。
resizeparam做调整,做布局。
loadparam

加载并显示在第一页的行,如果‘param’指定了,那么它便会随着QueryParams属性取代。

通常通过传递一个参数做一个查询,这个方法可以成为从服务器加载新数据。

1 $('#dg').datagrid('load',{
2     code: '01',
3     name: 'name01'
4 });
reloadparam重新加载行,和“load”方法一样,但是停留在当前页面。
reloadFooterfooter重新加载页脚行,代码示例:
 1 // update footer row values and then refresh
 2 var rows = $('#dg').datagrid('getFooterRows');
 3 rows[0]['name'] = 'new name';
 4 rows[0]['salary'] = 60000;
 5 $('#dg').datagrid('reloadFooter');
 6 
 7 // update footer rows with new data
 8 $('#dg').datagrid('reloadFooter',[
 9     {name: 'name1', salary: 60000},
10     {name: 'name2', salary: 65000}
11 ]);
loadingnone显示加载状态。
loadednone隐藏加载状态。
fitColumnsnone使列自动 展开/收缩 以适应网格的宽度。
fixColumnSizefield固定列的大下,如果‘field’参数没有被分配,则所有列大小都将是固定的。

代码示例:

1 $('#dg').datagrid('fixColumnSize', 'name');  // 固定‘name’列的大小
2 $('#dg').datagrid('fixColumnSize');  // 固定所有列大小
fixRowHeightindex固定指定的行高,如果“index”参数没有分配,则所有行高都将是固定的。
autoSizeColumnfield调整列宽度以适应其内容,这个方法在1.3版本之后可用。
loadDatadata加载本地数据,旧的行会被删除。
getDatanone返回加载的数据。
getRowsnone返回当前页的行。
getFooterRowsnone返回页脚行。
getRowIndexrow返回指定行的索引,row行参数可以是一个行记录或一个id字段值。
getCheckednone返回复选框被选中的所有行,这个方法在1.3版本后可用。
getSelectednone返回第一个选定行的记录或null。
getSelectionsnone返回所有选定的行,当没有选中记录的时候,将返回一个空数组。
clearSelectionsnone清除所有的选择。
selectAllnone选择当前页面所有的行。
unselectAllnone取消选择当前页面的所有行。
selectRowindex选择一行,行下标从0开始。
selectRecordidValue通过id值参数选中一行。
unselectRowindex取消选中行。
checkAllnone选中当前页面所有行,这个方法从1.3版本之后可用。
uncheckAllnone取消选中当前页所有行,这个方法从1.3版本之后可用。
checkRowindex选中一行,行下标从0开始,这个方法从1.3版本之后可用。
uncheckRowindex取消选中一行,行下标从0开始,该方法从1.3版本之后可用。
beginEditindex开始编辑行。
endEditindex结束编辑行。
cancelEditindex取消编辑行
getEditorsindex获取指定的行编辑器,每个编辑器具有以下属性:
actions: 该编辑器可以做的action动作,和编辑器定义一样。
target: 目标编辑器的jQuery对象。
field: 字段名称。
type: 编辑器类型,例如'text','combobox','datebox', 等.
getEditoroptions获取指定的编辑器,该选项包含两个属性:
index: 行下标索引
field: 字段名称

代码示例:

1 // 获取 DateBox 编辑器,并且更改它的值
2 var ed = $('#dg').datagrid('getEditor', {index:1,field:'birthday'});
3 $(ed.target).datebox('setValue', '5/4/2012');
refreshRowindex刷新行。
validateRowindex验证指定的行,返回“true”时有效。
updateRowparam更新指定的行,该参数包含以下属性:
index: 要更新的行下标索引。
row: 新行的数据。

代码示例:

1 $('#dg').datagrid('updateRow',{
2     index: 2,
3     row: {
4         name: 'new name',
5         note: 'new note message'
6     }
7 });
appendRowrow拼接一个新行,这个新行将会被追加在最后的位置:
1 $('#dg').datagrid('appendRow',{
2     name: 'new name',
3     age: 30,
4     note: 'some messages'
5 });
insertRowparam

插入一个新行,该参数包含以下属性:
index: 要插入新行的下标索引位置,如果没有指定,则在后面拼接新增。
row: 要新增的行数据,

代码示例如下:

1 // 在第二行插入新行
2 $('#dg').datagrid('insertRow',{
3     index: 1,    // index start with 0
4     row: {
5         name: 'new name',
6         age: 30,
7         note: 'some messages'
8     }
9 });
deleteRowindex删除一行。
getChangestype

获取自从上次提交后的产生更改的行。

这个类型参数指明哪些类型更改了行,可能的值如下:inserted,deleted,updated,等.

当类型参数没有指定时,返回所有更改的行。

acceptChangesnone提交所有的更改,从它被加载或者上次 acceptChanges 被调用。
rejectChangesnone回滚自其创建后所有更改的数据,或者从最近一次 acceptChanges 被调用。
mergeCellsoptions合并某个列为一个列,这个选项包含以下属性:
index: 行下标
field: 字段名称
rowspan: 要合并的行数
colspan: 要合并的列数
showColumnfield显示指定的列。
hideColumnfield隐藏指定的列。

转载于:https://www.cnblogs.com/liudj/p/10179352.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值