jqery-easyui的Datagrid的介绍-Pagination事件

Datagrid(数据表)

依赖的组件

resizable

linkbutton

pagination

DataGrid Options对象的属性

名称(Name) 类型(Type) 描述(Description) 默认值(Default)
Titile string Datagrid数据表的标题 null
iconCls string 一个样式类提供作为数据表图标的背景图标 null
border boolean 是否显示数据表边框,true-显示 false-不显示 true
width number 设置Datagrid的宽度 auto
height number 设置Datagrid的高度 auto
columns array 配置Datagrid列属性的Object对象 null
frozenColumns array columns属性一样,但是该属性设置的列会被冻结在Datagrid的左边 null
striped boolean 是否显示斑马线 false
Method string 远程数据的获取类型,可取值为postget post
nowrap boolean 是否把数据显示在一行上,如果设置为false,当数据长度超过列长度时,超过的部分被截掉 true
idField string 表明哪个字段是一个标识字段 null
url string 从远程地址请求数据的url null
loadMsg string 当从远程站点加载数据时显示的提示消息 Processing, please wait …
pagination boolean 设置是否有分页功能 false
rownumbers number 是否显示行号列 false
singleSelect number 设置是否可只选一行 false
fit boolean 设置是否可以让表格自动缩放以适应父容器 false
pageNumber number 当设置pagination属性时,初始化页码 1
pageSize number 当设置pagination属性时,初始化每一页显示的数量 10
pageList array 当设置pagination属性时,初始化每页可选的数据大小清单 [10,20,30,40,50]
queryParams Object 当请求远程数据时,发送的额外的参数 {}
sortName string 定义哪一列可以排序 null
sortOrder string 定义列排序的方式,递增(asc)或递减(desc asc

Columns属性

Name Type Description Default
title 字符串 列标题文字 undefined
field 字符串 列字段名称 undefined
width 数字 列宽度 undefined
rowspan 数字 该列占几行单元格 undefined
colspan 数字 该列占几列单元格 undefined
align 字符串 数据对其方式,可选值有left,right,center undefined
sortable 布尔 是否允许该列排序 undefined
checkbox 布尔 是否显示选择框 undefined
formatter 函数 包含三个参数:

value: 列字段对应的值

rowData: 行数据对象

rowIndex: 行索引

undefined
editor string,object 指示编辑类型,有两个子属性,type和options;type可选的编辑框有:text,textarea,checkbox,numberbox,validatebox,datebox,combobox,combotree;options指定一个对象,与编辑类型对应,数字框对应的options属性中有precision,表示小数点位数 undefined

 

事件

Name Parameters Description
onLoadSuccess none 远程数据成功加载时触发
onLoadError none 远程数据加载发生错误时触发
onClickRow rowIndex,rowData 用户点击一行时触发,参数包括:

rowIndex:被点击行的索引,索引从0开始

rowData:被点击行对应的数据记录

onDblClickRow rowIndex,rowData 用户双击一行时触发,参数同上
onSortColumn sort,order 用户对一列进行排序时触发,参数包括:

sort:被排序的类字段名称

order:排序的命令,asc 或者 desc

onSelect rowIndex,rowData 用户选择一行时触发
onUnselect rowIndex,rowData 当用取消选择一行时触发

方法

Name Parameters Description
options none 返回一个options对象
resize none 调整表格大小和布局
reload none 重新加载行
fixColumnSize none 固定列的大小
loadData param 加载本地数据,旧行将被删除
getSelected none 返回被选中的第一行记录或者null
getSelections none 返回所有被选中的行,当没有一条记录别选中时则返回一个空的数组对象
clearSelections none 取消所有选中
selectRow index 选择一行,行索引从0开始
selectRecord idValue 通过行id值选择一行
unselectRow index 取消选中某行
beginEdit index 开始编辑某行
endEdit index 结束编辑某行
cancelEdit index 取消编辑某行
refreshRow index 刷新一行的数据
appendRow row 添加新行
deleteRow index 删除一行
getChanges type 自最后一次数据提交开始获取被改变的行,类型参数指示的是行的改变类型,可能的值是:inserted,deleted,updated等,当类型参数没有指定时将返回所有被改变的行
acceptChanges none 自数据被加载或者最后一次调用acceptChanges的时间开始,提交所有的数据变化
rejectChanges none 自所有数据被创建或者最后一次调用accepChanges方法开始回滚所有变化了的数据

 

注:示例中用到了分页,Datagrid依赖pagination(分页)组件,下面讲解以下pagination组件的属性和事件

Paginagion

Pagination属性

属性名 类型 描述 默认值
total 数字 当分页建立时设置记录的总数量 1
pageSize 数字 每一页显示的数量 10
pageNumber 数字 当分页建立时,显示的页数 1
pageList 数组 用户可以修改每一页的大小,pageList属性定义了多少种大小可以改变. [10,20,30,50]
loading 布尔 定义数据是否正在加载 false
buttons 数组 定义自定义按钮,每个按钮包含两个属性:iconCls:     显示背景图像的CSS

handler:   当一个按钮被点击时的处理函数

null
showPageList 布尔 定义是否显示页面列表 true
showRefresh 布尔 定义是否显示刷新按钮 true
beforePageText 字符串 在输入框组件前显示的标签 Page
afterPageText 字符串 在输入框组件后显示的标签 Of  {pages}
displayMsg 字符串 显示一个页面的信息。 Displaying {from} {to}  of        {total}        items  注:{param}是固定的参数设置,不能修改

Pagination事件

事件名 参数 描述
onSelectPage pageNumber, pageSize 当用户选择一个新页时触发,回调函数包含两个参数:pageNumber: 新页面的页数pageSize: 新页面的大小
onBeforeRefresh ageNumber, pageSize 刷新按钮被点击之前触发,如果返回false则取消刷新操作
onRefresh ageNumber, pageSize 刷新以后触发
onChangePageSize ageSize 改变页面大小时触发
1.实例
(1)代码

 

<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN""http://www.w3.org/TR/html4/loose.dtd">

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">

<title>EasyUI Datagrid</title>

<link rel="stylesheet" type="text/css"

    href="../themes/default/easyui.css">

<link rel="stylesheet" type="text/css" href="../themes/icon.css">

<script type="text/javascript" src="../jquery-1.4.2.min.js"></script>

<script type="text/javascript" src="../jquery.easyui.min.js"></script>

<script>

    $(function(){

       $('#test').datagrid({

           title:'My Title',

           iconCls:'icon-save',

           width:800,

           height:450,

           nowrap: true,       

           striped: true,

           url:'datagrid_data.json',

           sortName: 'code',

           sortOrder: 'desc',

           idField:'code',

           frozenColumns:[[

{field:'ck',checkbox:true},

                 {title:'code',field:'code',width:80,sortable:true}

           ]],

           columns:[[

{title:'Base Information',colspan:3},

{field:'opt',title:'Operation',width:100,align:'center'

,rowspan:2,formatter:function(value,rec){

                  return '<span style="color:red">Edit Delete</span>';

              }

           }],

[{field:'name',title:'Name',width:120},

                 {field:'addr',title:'Address',width:120,rowspan:2,sortable:true},

           {field:'col4',title:'Col41',width:150,rowspan:2}

           ]],

           pagination:true,

           rownumbers:true,

           singleSelect:true,

           //事件调用的方式

           onLoadSuccess: function (){alert('load data successfully!');}

           toolbar:[{ //设置工具条,该工具条中设置了三个功能按钮

              text:'Add',   //标题为’Add’的工具条按钮

              iconCls:'icon-add',//工具条按钮显示的图标

              handler:function(){//工具条按钮实现的功能函数

                  alert('add')

              }

           },{

              text:'Cut',   //标题为’Cut’的工具条按钮

              iconCls:'icon-cut',

              disabled:true,

              handler:function(){

                  alert('cut')

              }

           },'-',{

              text:'Save',

              iconCls:'icon-save',

              handler:function(){

                  alert('save')

              }

           }]

       });

       //获取页面分页对象

       var p = $('#test').datagrid('getPager');

       if (p){

           $(p).pagination({ //设置分页功能栏

              //分页功能可以通过Pagination的事件调用后台分页功能来实现

              onBeforeRefresh:function(){

                  alert('before refresh');

              }

           });

       }

    });

 

    function resize(){

       $('#test').datagrid({

           title: 'New Title',

           striped: true,

           width: 650,

           queryParams:{

              p:'param test',

              name:'My Name'

           }

       });

    }

    //获取Datagrid Options对象属性的方式

    function getGridProperty(){

       //先获取Options对象,然后通过Options获取其属性

       var optionsObj = $('#test').datagrid('options');

       var queryParams = optionsObj.queryParams;

      

}

 

//以下为调用Datagrid的函数的自定义方法

    function getSelected(){

       var selected = $('#test').datagrid('getSelected');

       alert(selected.code+":"+selected.name);

    }

    function getSelections(){

       var ids = [];

       var rows = $('#test').datagrid('getSelections');

       for(var i=0;i<rows.length;i++){

           ids.push(rows[i].code);

       }

       alert(ids.join(':'))

    }

    function clearSelections(){

       $('#test').datagrid('clearSelections');

    }

    function selectRow(){

       $('#test').datagrid('selectRow',2);

    }

    function selectRecord(){

       $('#test').datagrid('selectRecord','002');

    }

    function unselectRow(){

       $('#test').datagrid('unselectRow',2);

    }

</script>

</head>

<body>

<h1>DataGrid</h1>

<div style="margin-bottom: 10px;">

<a href="#" onclick="resize()">resize</a>

<a href="#" onclick="getSelected()">getSelected</a>

<a href="#" onclick="getSelections()">getSelections</a>

<a href="#" onclick="clearSelections()">clearSelections</a>

<a href="#" onclick="selectRow()">selectRow</a>

<a href="#" onclick="selectRecord()">selectRecord</a>

<a href="#" onclick="unselectRow()">unselectRow</a>

</div>

<table id="test"></table>

</body>

</html>

 

猜你喜欢

转载自www.cnblogs.com/zhangtianle/p/9023259.html