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

Posted 醉里浪

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了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>

 

 

以上是关于jqery-easyui的Datagrid的介绍-Pagination事件的主要内容,如果未能解决你的问题,请参考以下文章

EasyUI使用——datagrid数据表格

WPF入门教程系列二十一——DataGrid示例

EasyUI DataGrid及Pagination

[转]jQuery EasyUI自定义DataGrid的Editor

easyui-datagrid 的loader属性用法

2021-08-20 WPF控件专题 DataGrid控件详解