✅ 操作成功!

jqgrid官网

发布时间:2023-06-05 作者:admin 来源:文学

jqgrid官网

jqgrid官网

公安县中医院-闽江学院教务系统

2023年2月18日发(作者:天通银)

Jqgrid中文文档---整理:沧浪雾月客

1

Jqgrid3.6中文文档

jqGrid学习-----------原理...............................................................................................................................2

jqGrid学习之---------皮肤.............................................................................................................................2

jqGrid学习.............................................................................................................................................................2

jQuery学习之:jqGrid表格插件——参数配置........................................................................................4

jqGrid学习--------------自定义搜索.............................................................................................................14

jqGrid学习--------------搜索工具栏...........................................................................................................16

jqGrid学习--------------搜索.........................................................................................................................17

jqGrid学习--------------自定义格式化类型.............................................................................................19

jqGrid学习--------------格式化....................................................................................................................22

jqGrid学习--------------自定义按钮...........................................................................................................26

jqGrid学习--------------翻页(2).............................................................................................................28

jqGrid学习--------------翻页.........................................................................................................................33

jqGrid学习--------------配置json................................................................................................................36

jqGrid学习--------------方法.........................................................................................................................38

jqGrid学习-----------事件.............................................................................................................................46

jqGrid学习-----------数据.............................................................................................................................48

jqGrid学习--------------ColModelAPI.........................................................................................................55

jqGrid学习-----------参数(2)..................................................................................................................57

jqGrid学习------------------jqGrid参数.......................................................................................................63

jqGrid学习-----------------第一个实例.......................................................................................................64

使用jqGrid修改数据并检查.........................................................................................................................70

Jqgrid中文文档---整理:沧浪雾月客

2

jqGrid学习-----------原理

jqGrid是典型的B/S架构,服务器端只是提供数据管理,客户端只提供数据显

示。换句话说,jqGrid可以以一种更加简单的方式来展现你数据库的信息,而

且也可以把客户端数据传回给服务器端。

对于jqGrid我们所关心的就是:必须有一段代码把一些页面信息保存到数据库

中,而且也能够把响应信息返回给客户端。jqGrid是用ajax来实现对请求与响

应的处理。

jqGrid学习之---------皮肤

jqGrid皮肤

从3.5版本开始,jqGrid完全支持jqueryUI的theme。我们可以从

/themeroller/下载我们所需要的theme。当然,你也可以

编辑自己的theme。jqGrid

也并不需要把所有的css文件都引入进来,只需导入核心css文件

“”以及“”即可,文件位于目录

development-bundle/themes下。

jqGrid学习

jqGrid学习之-------------安装

jqGrid安装很简单,只需把相应的css、js文件加入到页面中即可。

按照官网文档:

*

/myproject/css/

o

o

/ui-lightness/

+

/images/

+

*

/myproject/js/

o

/i18n/

Jqgrid中文文档---整理:沧浪雾月客

3

+

+

listofalllanguagefiles

+

….

o

o

o

目录结构如上。

在页面中写法:

Java代码

1.

"/TR/xhtml1/DTD/">

2.

g="en">

3.

4.

utf-8"/>

5.MyFirstGrid

6.

7.

"css/ui-lightness/"/>

8.

"js/src/css/"/>

9.

"js/src/css/"/>

10.

11.

,body{

:0;

g:0;

-size:75%;

16.}

17.

18.

19.

20.

21.

22.

26.

27.

20.

21.

22.

26.

27.

需要说明的:

所有的搜索都是使用url来到服务器端查询数据。

当执行搜索时会用查询数据填充postDataarray

发送到服务器端搜索字符串的名称为_search

当点击刷新按钮时不会使用搜索条件

每个搜索方法都有自己的数据清空方法

jqGrid学习--------------自定义格式化类型

Java代码

1.

定义的参数

Java代码

onmyformatter(cellvalue,options,rowObject)

2.{

3.//formatthecellvaluetonewformat

new_formated_cellvalue;

5.}

cellvalue:要被格式化的值

options:对数据进行格式化时的参数设置,格式为:

{rowId:rid,colModel:cm}

rowObject:行数据

数据的反格式化跟格式化用法相似。

Java代码

1.

表格中数据实际值为123.00,但是显示的是$123.00;我们使用getRowData,

getCell方法取得的值是123.00。

创建通用的格式化函数

定义如下:

Java代码

1.

具体使用:

Java代码

1.

使用格式化后

Java代码

1.

结果是,表格的数据值为1或者2但是现实的是One或者Two。

对超链接使用select类型的格式化:

Java代码

Jqgrid中文文档---整理:沧浪雾月客

26

1.

输出结果:

Java代码

://localhost/?id=123&action=edit

如果想改变id值则

Java代码

1.

输出为

Java代码

://localhost/?myid=123&action=edit

jqGrid学习--------------自定义按钮

用法:

Java代码

Jqgrid中文文档---整理:沧浪雾月客

27

1.

如果使用新API

Java代码

1.

默认参数

Java代码

1.{caption:"NewButton",buttonicon:"ui-icon-newwin",onClickB

utton:null,position:"last",title:"",cursor:"pointer"}

caption:按钮名称,可以为空,string类型

buttonicon:按钮的图标,string类型,必须为UItheme图标

onClickButton:按钮事件,function类型,默认null

position:first或者last,按钮位置

title:string类型,按钮的提示信息

cursor:string类型,光标类型,默认为pointer

id:string类型,按钮id

如果设置多个按钮:

Java代码

1....

("#grid_id")

3..navGrid('#pager',{edit:false,add:false,del:false,search:false}

)

4..navButtonAdd('#pager',{

n:"Add",

icon:"ui-icon-add",

Jqgrid中文文档---整理:沧浪雾月客

28

kButton:function(){

("AddingRow");

9.},

on:"last"

11.})

12..navButtonAdd('#pager',{

n:"Del",

icon:"ui-icon-del",

kButton:function(){

("DeletingRow");

17.},

on:"last"

19.});

20....

按钮间的分隔

Java代码

1.

默认参数:

Java代码

1.{sepclass:“ui-separator”,sepcontent:''}

sepclass:ui-jqgrid的属性名

sepcontent:分隔符的内容

jqGrid学习--------------翻页(2)

jqGrid的翻页导航是一个方法,你可以事先定义一些其他操作,比如:编辑、

新增、删除及搜索。也可以增加自定义的函数。导航工具栏是定义到翻页控件上

的。定义如下:

Jqgrid中文文档---整理:沧浪雾月客

29

Java代码

1....

2.

3....

4.

5.

6....

7.

JS的用法:

Java代码

1.

如果使用新API:

Java代码

1.

或者:

Java代码

Jqgrid中文文档---整理:沧浪雾月客

30

1.

grid_id:表格id

gridpager:导航栏id

parameters:参数列表

prmEdit,prmAdd,prmDel,prmSearch,prmView:事件

参数使用:

Java代码

1.$.jgrid={

2....

:{

n:"Search...",

:"Find",

:"Reset",

:['equal','notequal','less','lesso

requal','greater','greaterorequal','beginswith','does

notbeginwith','isin','isnotin','endswith','does

notendwith','contains','doesnotcontain'],

ps:[{op:"AND",text:"all"},{op

:"OR",text:"any"}],

ext:"match",

ext:"rules"

11.},

:{

tion:"AddRecord",

ption:"EditRecord",

t:"Submit",

l:"Cancel",

:"Close",

ta:"Datahasbeenchanged!Savechanges?

",

:"Yes",

:"No",

Jqgrid中文文档---整理:沧浪雾月客

31

:"Cancel",

22.},

:{

n:"ViewRecord",

:"Close"

26.},

:{

n:"Delete",

:"Deleteselectedrecord(s)?",

t:"Delete",

l:"Cancel"

32.},

:{

xt:"",

tle:"Editselectedrow",

t:"",

le:"Addnewrow",

t:"",

le:"Deleteselectedrow",

text:"",

title:"Findrecords",

htext:"",

htitle:"ReloadGrid",

ap:"Warning",

ext:"Please,selectrow",

xt:"",

tle:"Viewselectedrow"

48.},

49....

详细参数说明

属性类型说明默认值

addboolean

是否启用新增功能,当点击按钮时

会触发editGridRow事件

true

addiconstring

给新增功能设置图标,只有UI

theme里的图标才可以使用

ui-icon-plus

addtextstring新增按钮上的文字空

addtitlestring

当鼠标移到新增按钮上时显示的提

新增一行

alertcapstring

当我们edit,deleteorview一行

记录时出现的提示信息

警告

alerttextstring当edit,deleteorview一行记录请选择一行记录

Jqgrid中文文档---整理:沧浪雾月客

32

时的文本提示

closeOnEscapeboolean是否可以使用esc键关闭对话框true

delboolean

是否启用删除功能,启用时会触发

事件delGridRow

true

deliconstring

设置删除按钮的图标,只有UI

theme里的图标才可以使用

ui-icon-trash

deltextstring设置到删除按钮上的文字信息空

deltitlestring

当鼠标移到删除按钮上时出现的提

删除锁选择的行

editboolean

是否启用可编辑功能,当编辑时会

触发事件editGridRow

true

editiconstring

设置编辑按钮的图标,只有UI

theme里的图标才可以使用

ui-icon-pencil

edittextstring编辑按钮上文字空

edittitlestring

当鼠标移到编辑按钮上出现的提示

信息

编辑所选择的行

positionstring

定义按钮位置,可选值left,

centerandright.

left

refreshboolean

是否启用刷新按钮,当点击刷新按

钮时会触发

trigger(“reloadGrid”)事件,而

且会清空搜索条件值

true

refreshiconstring

设置刷新图标,只有UItheme里的

图标才可以使用

ui-icon-refresh

refreshtextstring刷新按钮上文字信息空

refreshtitlestring当鼠标移到刷新按钮上的提示信息重新加载

refreshstatestring

指明表格如何刷新。firstpage:从

第一页开始刷新;current:只刷新

当前页内容

firstpage

afterRefreshfunction当点击刷新按钮之后触发此事件null

searchboolean

是否启用搜索按钮,会触发

searchGrid事件

true

searchhiconstring

设置搜索按钮的图标,只有UI

theme里的图标才可以使用

ui-icon-search

searchtextstring搜索按钮上的文字空

searchtitlestring当鼠标移到搜索按钮上的提示信息搜索

viewboolean

是否启用查看按钮,会触发事件

viewGridRow

false

viewiconstring

设置查看按钮的图标,只有UI

theme里的图标才可以使用

ui-icon-document

Jqgrid中文文档---整理:沧浪雾月客

33

viewtextstring查看按钮上文字空

viewtitlestring当鼠标移到查看按钮上的提示信息查看所选记录

实例:

Java代码

1.

jqGrid学习--------------翻页

jqGrid的翻页要定义在html里,通常是在grid的下面,且是一个div对象:

Java代码

1.

2....

3.

4.

5....

6.

js代码:

Java代码

Jqgrid中文文档---整理:沧浪雾月客

34

("#grid_id").jqGrid({

2....

:'#gridpager',

4....

5.});

不必给翻页设置任何的css属性。在jqGrid里定义的翻页可以是::pager:

'#gridpager',pager:'gridpager'orpager:jQuery('#gridpager').推

荐使用前两个,当使用其他方式时jqGrid的导入导出功能时会引起错误。

导航栏的属性:

Java代码

1.$.jgrid={

ts:{

text:"View{0}-{1}of{2}",

ecords:"Norecordstoview",

xt:"Loading...",

:"Page{0}of{1}"

7.},

8....

9.}

如果想改变这些设置:

1、方法一:

Java代码

(ts,{emptyrecords:"Nothingt

odisplay",...});

2、方法二:

Java代码

("#grid_id").jqGrid({

2....

:'#gridpager',

ecords:"Nothingtodisplay",

5....

6.});

Jqgrid中文文档---整理:沧浪雾月客

35

导航栏的属性

属性名类型说明默认值

是否

可以

被修

lastpageinteger只读属性,总页数0NO

pagermixed

导航栏对象,必须是一个有效的html元素,

位置可以随意

空字符

NO

pagerposstring

定义导航栏的位置,默认分为三部分:翻

页,导航工具及记录信息

centerNO

pgbuttonsboolean是否显示翻页按钮trueNO

pginputboolean是否显示跳转页面的输入框trueNO

pgtextstring

页面信息,第一个值是当前页第二个值是

总页数

语言包YES

reccountinteger

只读属性,实际记录数,千万不能跟

records参数搞混了,通常情况下他们是

相同的,假如我们定义rowNum=15,但我们

从服务器端返回的记录为20即

records=20,而reccount=15,表格中也显

示15条记录。

0NO

recordposstring

定义记录信息的位置,可选值:left,

center,right

rightNO

recordsinteger只读属性,从服务器端返回的记录数noneNO

recordtextstring

显示记录的信息,只有当viewrecords为

true时起效,且记录数必须大于0

语言包yes

rowListarray[]

可以改变表格可以显示的记录数,格式为

[10,20,30]

array[]

no

rowNuminteger设置表格可以显示的记录数20yes

viewrecordsboolean是否要显示总记录数信息falseno

所有这些参数都是可以修改的,比如:

Java代码

1.

跟翻页相关的事件只有一个:onPaging

事件名参数说明

onPagingpgButton

当点击翻页按钮但还为展现数据时触发此事件,当然这跳转

栏输入页码改变页时也同样触发此事件。参数pgButton可选

值:first,last,prev,next

jqGrid学习--------------配置json

IE8,FF3以及Chrome3已经支持JSON,配置:

Java代码

1.

"/TR/xhtml1/DTD/">

2.

g="en">

3.

4.

utf-8"/>

5.MyFirstGrid

6.

7.

"css/ui-lightness/"/>

8.

"css/"/>

9.

10.

12.

15.

16.

17.

18.

19....

20.

21.

Jqgrid中文文档---整理:沧浪雾月客

37

要注意下面这段代码

Java代码

1.

这段代码要放到语言包之后文件之前。

如果浏览器不支持JSON,那么我们只能用eval函数解析json。

除了jqGrid本身提供对json的类库外,我们可以使用来处理JSON,

配置如下:

Java代码

1.

"/TR/xhtml1/DTD/">

2.

g="en">

3.

4.

utf-8"/>

5.MyFirstGrid

6.

7.

"css/ui-lightness/"/>

8.

"css/"/>

9.

10.

11.

13.

14.

21.

22.

23.

24....

25.

26.

jqGrid学习--------------方法

jqGrid的方法,从3.6开始已经完全兼容jQueryUI库。

用法:

Java代码

1.

grid_id:表格的id;jqGridMethod:用到表格上的方法;

parameter1,…parameterN:参数列表

此方法并不是返回请求的数据值而是返回一个jqGrid对象。

Java代码

1.

如果使用新的API:

Java代码

1.

grid_id:表格id;jqGrid:表格实例;method:表格支持的方法名;

parameter1,...parameterN:参数列表

具体实例:

Java代码

1.

jqGrid配置使用新的api

Java代码

1.

"/TR/xhtml1/DTD/">

2.

g="en">

3.

4.

utf-8"/>

5.MyFirstGrid

6.

7.

"css/ui-lightness/"/>

8.

"css/"/>

9.

10.

12.

15.

16.

17.

18.

19....

20.

21.

要注意

Java代码

1.

这段代码必须放在语言包之后文件之前。

jqGrid方法

方法名参数

返回

说明

addJSONDatadatanone

使用传来的data数据填充表格。使用方

法:varmygrid=

jQuery(”#”+grid_id)[0];var

myjsongrid=

eval(”(”+seTex

t+”)”);

NData(myjsongrid);

myjsongrid=null;jsonresponse

=null;

addRowData

rowid,data,

position,

srcrowid

成功

true

,否

则为

fals

e

根据参数插入一行新的数据,rowid为新

行的id,data为新行的数据,position

为新增行的位置,srcrowid为新增行的参

考位置。data数据格式:

{name1:value1,name2:value2…}name

为在colModel中指定的名称

addXMLDatadatanone

根据传来的数据填充表格。用法:var

mygrid=jQuery(”#”+grid_id)[0];

Data(

Jqgrid中文文档---整理:沧浪雾月客

41

nseXML);

clearGridDataclearfooter

jqGr

id对

清除表格当前加载的数据。如果

clearfooter为true时则此方法删除表

格最后一行的数据

delRowDatarowid

成功

true

否则

fals

e

根据rowid删除行,但不会从服务器端删

除数据

footerData

action,data,

format

jgGr

id对

设置或者取得底部数据。action:“get”

或者“set”,默认为“get”,如果为

“get”返回值为name:value,name为

colModel中名称。如果为“set”则值为

name:value,name是colModel中的名称。

format:默认为true,当为true时,在

设置新值时会调用formatter格式化数值

getCellrowid,iCol

单元

格内

返回指定rowid,iCol的单元格内容,iCol

既可以是当前列在colModel中的位置索

引也可以是name值。注意:在编辑行或

者单元格时不能使用此方法,此时返回的

并不是改变的值,而是原始值

getCol

colname,

returntype,

mathoperatio

n

arra

y[]

or

valu

e

返回列的值。colname既可以是当前列在

colModel中的位置索引也可以是name

值。returntype指定返回数据的类型,默

认为false。当为false时,返回的数组

中只包含列的值,当为true时返回数组

是对象数组,具体格式{id:rowid,

value:cellvalue},id为行的id,value

为列的值。如:

[{id:1,value:1},{id:2,value:2}…]。

mathoperation可选值为'sum,'avg',

'count'

getDataIDsnone

arra

y[]

返回当前grid里所有数据的id

getGridParamname

mixe

d

valu

e

返回请求的参数信息

getIndrowid,rowconmixe如果rowcontent为false,返回行所在的

Jqgrid中文文档---整理:沧浪雾月客

42

tentd索引位置,id为行id。rowcontent默认

为false。如果rowconent为ture则返回

的为行对象,如果找不到行则返回false

getRowDatarowidornone

arra

y{}

返回指定行的数据,返回数据类型为

name:value,name为colModel中的名称,

value为所在行的列的值,如果根据rowid

找不到则返回空。在编辑模式下不能用此

方法来获取数据,它得到的并不是编辑后

的值

hideCol

colnameor[co

lnames]

jqGr

id对

如果参数为一个列名则隐藏此列,如果给

定的是数组则隐藏指定的所有列。格式:

[“name1”,”name2”]

remapColumns

permutation,

updateCells,

keepHeader

none

调整表格列的显示顺序,permutation为

当前列的顺序,假如值是[1,0,2],那么

第一列就会在第二位显示。如果

updateCells为ture则是对单元格数据

进行重新排序,如果keepHeader为true

则对header数据显示位置进行调整

resetSelectionnone

jqGr

id对

选择或者反选行数据,在多选模式下也同

样起作用

setCaptioncaption

jqGr

id对

设置表格的标题

setCell

rowid,colnam

e,data,

class,

properties

jqGr

id对

改变单元格的值。rowid:当前行id;

colname:列名称,也可以是列的位置索

引,从0开始;data:改变单元格的内容,

如果为空则不更新;class:如果是string

则会使用addClass方法将其加入到单元

格的css中,如果是array则会直接加到

style属性中;properties:设置单元格

属性

setGridParamobject

jqGr

id对

设置grid的参数。有些参数的修改必须

要重新加载grid才可以生效,这个方法

可以覆盖事件

setGridHeightnew_height

jqGr

id对

动态改变grid的高度,只能对单元格的

高度进行设置而不能对表格的高度进行

动态修改。new_height:可以是象素值,

百分比或者"auto"

setGridWidth

new_width,sh

rink

jqGr

id对

动态改变表格的宽度。new_width:表格宽

度,象素值;shrink:true或者false,

作用同shrinkToFit

Jqgrid中文文档---整理:沧浪雾月客

43

setLabel

colname,

data,class,

properties

jqGr

id对

给指定列设置一个新的显示名称。

colname:列名称,也可以是列的位置索

引,从0开始;data:列显示名称,如果

为空则不修改;class:如果是string则

会使用addClass方法将其加入到单元格

的css中,如果是array则会直接加到

style属性中;properties:设置label

的属性

setRowData

rowid,data,

cssprop

成功

true

否则

fals

e

更新行的值,rowid为行id。data值格式:

{name1:value1,name2:value2…}name

为colModel中名称;cssprop:如果是

string则会使用addClass方法将其加入

到行的css中,如果是array或者对象则

会直接加到style属性中

setSelection

rowid,onsele

ctrow

jqGr

id对

选择或反选指定行。如果onselectrow为

ture则会触发事件onSelectRow,

onselectrow默认为ture

showColcolname

jqGr

id

显示列。colname可以是数组

[“name1”,”name2”],但是name1或者

name2必须是colModel中的name

trigger(“reloa

dGrid”)

none

jqGr

id对

重新加载当前表格,也会向服务器发起新

的请求

updateColumnsnonenone

同步表格的宽度,用在表格拖拽时,用法:

var

mygrid=jQuery(”#grid_id”)[0];mygr

Columns();

jqGrid的通用方法和设置

这些方法并不和jqGrid对象绑定,可以随意使用:

Java代码

1.

Function是函数名

parameter1,…parameterN参数列表

Jqgrid中文文档---整理:沧浪雾月客

44

函数名参数返回值说明

ajaxOptions空对象none

这个函数可以改变jqgrid中用到的

ajax请求参数,这个函数可以覆盖

当前所有ajax请求设置。从3.6版

本开始起有3个级别的ajax设置:

第一个级别就是在模块中设置ajax

请求;第二个级别就是通过此函数设

置;第三级别的设置是控制全局

ajax请求的设置:

(({meth

odspecificoptions},

ajaxOptions,

ThirdLevelajaxSettinds));当然

我们也可以单独设置ajax的参数

jqIDstring

解析后的

string

转义字符串,把两个反斜杠()转化

为单个反斜杠()

codestring

转换后

string

把转码后的字符串还原

codestring

编码后的

string

把字符串编码

string

格式化后

string

简单字符串模板。用法:Example

mat(“Pleaseenter

avaluebetween{0}and{1}.”,

4,result:“Pleaseentera

valuebetween4and8.”

lInd

ex

cellindex

这个方法是用来修复在ie7里的一

个bug

ToDo

c

xmlstringxmlDoc把xmlstring转换为dom对象

tmlcontent

new_conten

t

去掉html标签返回标签中内容

jsonstrin

g

对象

把一个jsonstring转换为json对

象,

jqGrid的方法

方法名参数

说明

filterG

rid

grid_id,param

s

HTM

L对

构造jqGrid的查询界面。grid_id:表格id;

params:参数

Jqgrid中文文档---整理:沧浪雾月客

45

filterT

oolbar

params

jqG

rid

同上。不同的是搜索输入框在header层下方

getColP

rop

colname

arr

ay{

}

返回指定列的属性集合。name为colModel中名称

GridDes

troy

grid_id

tru

e否

fal

se

从dom上删除此grid

GridUnl

oad

grid_id

tru

e否

fal

se

跟GridDestroy不同的是table对象跟pager对

象并不会被删除,以便下次使用

setGrid

State

state

jqG

rid

设置grid的状态,显示或者隐藏。这个方法不会

触发onHeaderClick事件。

setColP

rop

colname,

properties

jqG

rid

设置新的属性,对于动态改变列属性是非常有用

的,但是有些属性的修改并不会起效。用法:

jQuery(”#grid_id”).setColProp('colname',

{editoptions:{value:“True:False”}});

sortGri

d

colname,

reload

jqG

rid

按指定列进行排序。效果同

setGridParam({sortname:'myname'}).trigger(

'reloadGrid').如果reload为true则会重新加

载数据

updateG

ridRows

data,rowidnam

e,jsonreader

tru

e否

fal

se

修改表格中某行的数据,data数据格式:

[{name:value,name1:value1…},

{name:value,name2:value2…}],name为

colModel中的名称;rowidname某行的名称。

jsonreader:boolean值,默认false。如果为true

则是定义数据的格式,data的值并不是name:

value形式而只是value

Jqgrid中文文档---整理:沧浪雾月客

46

jqGrid学习-----------事件

jqGrid中的事件:

语法:

Java代码

tSel;

("#gridid").jqGrid({

3....

ctRow:function(id){

(id&&id!==lastSel){

('#gridid').restoreRow(lastSel);

l=id;

8.}

('#gridid').editRow(id,true);

10.},

11....

12.});

事件参数备注

afterInsertRowrowidrowdatarowelem

当插入每行时触发。rowid插入

当前行的id;rowdata插入行的

数据,格式为name:value,name

为colModel中的名字

beforeRequestnone

向服务器端发起请求之前触发

此事件但如果datatype是一个

function时例外

beforeSelectRowrowid,e

当用户点击当前行在未选择此

行时触发。rowid:此行id;e:

事件对象。返回值为ture或者

false。如果返回true则选择完

成,如果返回false则不会选择

此行也不会触发其他事件

gridCompletenone

当表格所有数据都加载完成而

且其他的处理也都完成时触发

此事件,排序,翻页同样也会触

发此事件

loadCompletexhr

当从服务器返回响应时执行,

xhr:XMLHttpRequest对象

Jqgrid中文文档---整理:沧浪雾月客

47

loadErrorxhr,status,error

如果请求服务器失败则调用此

方法。xhr:XMLHttpRequest对

象;satus:错误类型,字符串

类型;error:exception对象

onCellSelectrowid,iCol,cellcontent,e

当点击单元格时触发。rowid:

当前行id;iCol:当前单元格

索引;cellContent:当前单元

格内容;e:event对象

ondblClickRowrowid,iRow,iCol,e

双击行时触发。rowid:当前行

id;iRow:当前行索引位置;

iCol:当前单元格位置索引;

e:event对象

onHeaderClickgridstate

当点击显示/隐藏表格的那个按

钮时触发;gridstate:表格状

态,可选值:visibleorhidden

onPagingpgButton

点击翻页按钮填充数据之前触

发此事件,同样当输入页码跳转

页面时也会触发此事件

onRightClickRowrowid,iRow,iCol,e

在行上右击鼠标时触发此事件。

rowid:当前行id;iRow:当前

行位置索引;iCol:当前单元格

位置索引;e:event对象。此

事件不支持opera游览器

onSelectAllaRowids,status

multiselect为ture,且点击头

部的checkbox时才会触发此事

件。aRowids:所有选中行的id

集合,为一个数组。status:

boolean变量说明checkbox的

选择状态,true选中false不

选中。无论checkbox是否选择,

aRowids始终有值

onSelectRowrowid,status

当选择行时触发此事件。rowid:

当前行id;status:选择状态,

当multiselect为true时此参

数才可用

onSortColindex,iCol,sortorder

当点击排序列但是数据还未进

行变化时触发此事件。index:

name在colModel中位置索引;

iCol:当前单元格位置索引;

sortorder:排序状态:desc或

者asc

resizeStartevent,index当开始改变一个列宽度时触发

Jqgrid中文文档---整理:沧浪雾月客

48

此事件。event:event对象;

index:当前列在colModel中位

置索引

resizeStopnewwidth,index

当列宽度改变之后触发此事件。

newwidth:列改变后的宽度;

index:当前列在colModel中的

位置索引

serializeGridDatapostData

向服务器发起请求时会把数据

进行序列化,用户自定义数据也

可以被提交到服务器端

jqGrid学习-----------数据

jqGrid可支持的数据类型:xml、json、jsonp、localorclientSide、xmlstring、

jsonstring

、script、function(…)。

Json数据

需要定义jsonReader来跟服务器端返回的数据做对应,其默认值:

Java代码

("#gridid").jqGrid({

2....

ader:{

:"rows",

:"page",

:"total",

s:"records",

items:true,

:"cell",

:"id",

ta:"userdata",

d:{root:"rows",

items:true,

:"cell"

15.}

16.},

17....

18.});

这样服务器端返回的数据格式:

Jqgrid中文文档---整理:沧浪雾月客

49

Java代码

1.{

:"xxx",

:"yyy",

s:"zzz",

:[

6.{id:"1",cell:["cell11","cell12","cell13"]},

7.{id:"2",cell:["cell21","cell22","cell23"]},

8....

9.]

10.}

jsonReader的属性

total总页数

page当前页

records查询出的记录数

rows包含实际数据的数组

id行id

cell当前行的所有单元格

*root

这个元素指明表格所需要的数据从哪里开始。

Java代码

("#gridid").jqGrid({

2....

ader:{root:"invdata"},

4....

5.});

从服务器端返回数据格式为:

Java代码

1.{

:"xxx",

:"yyy",

s:"zzz",

a:[

6.{id:"1",cell:["cell11","cell12","cell13"]},

Jqgrid中文文档---整理:沧浪雾月客

50

7.{id:"2",cell:["cell21","cell22","cell23"]},

8....

9.]

10.}

*page

*total

*records

定义翻页所需要的信息

Java代码

("#gridid").jqGrid({

2....

ader:{

:"invdata",

:"currpage",

:"totalpages",

s:"totalrecords"

8.},

9....

10.});

服务器端返回数据:

Java代码

1.{

ages:"xxx",

ge:"yyy",

ecords:"zzz",

a:[

6.{id:"1",cell:["cell11","cell12","cell13"]},

7.{id:"2",cell:["cell21","cell22","cell23"]},

8....

9.]

10.}

*cell

当前行所包含的单元格数据

Java代码

Jqgrid中文文档---整理:沧浪雾月客

51

("#gridid").jqGrid({

2....

ader:{

:"invdata",

:"currpage",

:"totalpages",

s:"totalrecords",

:"invrow"

9.},

10....

11.});

从服务器端返回数据:

Java代码

1.{

ages:"xxx",

ge:"yyy",

ecords:"zzz",

a:[

6.{id:"1",invrow:["cell11","cell12","cell13"]},

7.{id:"2",invrow:["cell21","cell22","cell23"]},

8....

9.]

10.}

*id

行id

Java代码

("#gridid").jqGrid({

2....

ader:{

:"invdata",

:"currpage",

:"totalpages",

s:"totalrecords",

:"invrow",

:"invid"

10.},

Jqgrid中文文档---整理:沧浪雾月客

52

11....

12.});

从服务器端返回数据:

Java代码

1.{

ages:"xxx",

ge:"yyy",

ecords:"zzz",

a:[

6.{invid:"1",invrow:["cell11","cell12","cell13"]},

7.{invid:"2",invrow:["cell21","cell22","cell23"]},

8....

9.]

10.}

cell可以设置为空字符串,id也可以设置为数字:

Java代码

("#gridid").jqGrid({

2....

ader:{

:"invdata",

:"currpage",

:"totalpages",

s:"totalrecords",

:"",

:"0"

10.},

11....

12.});

从服务器端返回:

Java代码

1.{

ages:"xxx",

ge:"yyy",

ecords:"zzz",

Jqgrid中文文档---整理:沧浪雾月客

53

a:[

6.{"1","cell11","cell12","cell13"},

7.{"2",,"cell21","cell22","cell23"},

8....

9.]

10.}

*repeatitems

指明每行的数据是可以重复的,如果设为false,则会从返回的数据中按名

字来搜索元素,这个名字就是colModel中的名字:

Java代码

("#gridid").jqGrid({

2....

ader:{

:"invdata",

:"currpage",

:"totalpages",

s:"totalrecords",

items:false,

:"0"

10.},

11....

12.});

从服务器端返回数据:

Java代码

1.{

ages:"xxx",

ge:"yyy",

ecords:"zzz",

a:[

6.{invid:"1",invdate:"cell11",amount:"cell12",tax:"ce

ll13",total:"1234",note:"somenote"},

7.{invid:"2",invdate:"cell21",amount:"cell22",tax:"ce

ll23",total:"2345",note:"somenote"},

8....

9.]

10.}

Jqgrid中文文档---整理:沧浪雾月客

54

此例中,id属性值为“invid”。

一旦当此属性设为false时,我们就不必把所有在colModel定义的name值都赋

值。因为是按name来进行搜索元素的,所以他的排序也不是按colModel中指定

的排序结果。

Java代码

1.{

ages:"xxx",

ge:"yyy",

ecords:"zzz",

a:[

6.{invid:"1",invdate:"cell11",note:"somenote"},

7.{invid:"2",amount:"cell22",tax:"cell23",total:"23

45"},

8....

9.]

10.}

用户数据(userdata)

在某些情况下,我们需要从服务器端返回一些参数但并不想直接把他们显示到表

格中,而是想在别的地方显示,那么我们就需要用到userdata标签。

Java代码

ader:{

2....

ta:"userdata",

4....

5.}

从服务器端返回数据:

Java代码

1.{

:"xxx",

:"yyy",

s:"zzz",

ta:{totalinvoice:240.00,tax:40.00},

:[

7.{id:"1",cell:["cell11","cell12","cell13"]},

Jqgrid中文文档---整理:沧浪雾月客

55

8.{id:"2",cell:["cell21","cell22","cell23"]},

9....

10.]

11.}

在客户端我们得到的数据为:

Java代码

ta={totalinvoice:240.00,tax:40.00}

在客户端我们可以有下面两种方法得到这些额外信息:

1.使用getGridParam方法:

Java代码

("grid_id").getGridParam('userData')

2.使用getUserData()方法

Java代码

("grid_id").getUserData()

如果想获得某个值则为:

Java代码

("grid_id").getUserDataItem(key)

jqGrid学习--------------ColModelAPI

ColModel是jqGrid里最重要的一个属性,设置表格列的属性。

用法:

Java代码

("#gridid").jqGrid({

2....

Jqgrid中文文档---整理:沧浪雾月客

56

el:[{name:'name1',index:'index1'...},{...},

...],

4....

5.});

属性数据类型备注默认值

alignstring

定义单元格对齐方式;可选值:left,

center,right.

left

classesstring

设置列的css。多个class之间用空格分隔,

如:'class1class2'。表格默认的css属

性是ui-ellipsis

empty

string

datefmtstring

对日期列进行格式化。”/”,”-”,

and”.”都是有效的日期分隔符。y,Y,yyyy

年YY,yy月m,mmformonthsd,dd日.

ISODate

(Y-m-d)

defvalstring查询字段的默认值空

editableboolean单元格是否可编辑false

editoptionsarray对列进行编辑时设置的一些属性

empty

array

editrulesarray对于可编辑单元格的一些额外属性设置

empty

array

edittypestring

可以编辑的类型。可选值:text,textarea,

select,checkbox,password,button,

imageandfile.

text

fixedboolean列宽度是否要固定不可变false

formoptionsarray对于form进行编辑时的属性设置empty

formatoptionsarray对某些列进行格式化的设置none

formattermixed对列进行格式化时设置的函数名或者类型none

hidedlgboolean是否显示或者隐藏此列false

hiddenboolean在初始化表格时是否要隐藏此列false

indexstring

当排序时定义排序字段名称的索引,参数名

为sidx

empty

string

jsonmapstring定义了返回的json数据映射none

keyboolean

当从服务器端返回的数据中没有id时,将

此作为唯一rowid使用,默认只能有一个id

属性

false

labelstring

如果colNames为空则用此值来作为列的显

示名称,如果都没有设置则使用name值

none

namestring

必输项,表格列的名称,所有关键字,保留

字都不能作为名称使用包括subgrid,cb

Required

Jqgrid中文文档---整理:沧浪雾月客

57

andrn.

resizableboolean是否可以被resizabletrue

searchboolean

在搜索模式下,定义此列是否可以作为搜索

true

searchoptionsarray设置搜索参数empty

sortableboolean是否可排序true

sorttypestring

用在当datatype为local时,定义搜索列

的类型,可选值:int/integer-对integer

排序float/number/currency-排序数字

date-排序日期text-排序文本

text

stypestring定义搜索元素的类型text

surlstring搜索数据时的url

empty

string

widthnumber

默认列的宽度,只能是象素值,不能是百分

150

xmlmapstring

定义当前列跟返回的xml数据之间的映射关

none

unformatfunction‘unformat’单元格值null

有一些参数当表格初始化完成后是不能被修改的:*

name

*

width

*

resizable

*

label(methodavail.)

jqGrid学习-----------参数(2)

参数名称

参数

类型

描述默认值

ajaxGrid

Options

obje

ct

对ajax参数进行全局设置,可以覆盖ajax事件:

error,complete和beforeSend

空值是

ajaxGridobje对ajax参数进行全局设置空值是

Jqgrid中文文档---整理:沧浪雾月客

58

Optionsct

ajaxSele

ctOption

s

obje

ct

对ajax的select参数进行全局设置,设置

editoptions跟searchoptions参数的select

属性值

空值是

altclass

Stri

ng

用来指定行显示的css,可以编辑自己的css文

件,只有当altRows设为ture时起作用

ui-priorit

y-secondar

y

altRows

bool

ean

设置表格zebra-striped值false

autoenco

de

bool

ean

当为ture时对url进行编码false是

autowidt

h

bool

ean

如果为ture时,则当表格在首次被创建时会根

据父元素比例重新调整表格宽度。如果父元素宽

度改变,为了使表格宽度能够自动调整则需要实

现函数:setGridWidth

false否

caption

Stri

ng

定义表格名称空值

ap

i

cellLayo

ut

inte

ger

定义了单元格padding+border宽度。通常不

必修改此值。初始值为5,paddingLef⇒

2+paddingRight⇒2+borderLeft⇒1=5

5否

cellEdit

bool

ean

启用或者禁用单元格编辑功能false是

Jqgrid中文文档---整理:沧浪雾月客

59

cellsubm

it

Stri

ng

定义了单元格内容保存位置:“remote”,

“clientArray”

‘remote’是

cellurl

Stri

ng

单元格提交的url空值是

colModel

arra

y

描述列信息的数组空值否

colNames

arra

y[]

放置列名称的数组,必须与colModel大小相同空数组否

datastr

Stri

ng

xmlstring或者jsonstring空值是

datatype

stri

ng

表格可以被接受的数据类型:xml,xmlstring,

json,local,function

xml是

deselect

AfterSor

t

bool

ean

只有当datatype为local时起作用。当排序时

不选择当前行

true是

directio

n

stri

ng

表格中文字的显示方向,从左向右(ltr)或者

从右向左(rtr)。

ltr否

editurl

stri

ng

定义对form编辑时的url空值是

emptyrec

ords

stri

ng

当返回的数据行数为0时显示的信息。只有当属

性viewrecords设置为ture时起作用

在语言包中是

ExpandCo

lClick

bool

ean

当为true时,点击展开行的文本时,treeGrid

就能展开或者收缩,不仅仅是点击图片

true否

ExpandCo

lumn

stri

ng

指定那列来展开treegrid,默认为第一列,只

有在treeGrid为true时起作用

空值否

footerro

w

bool

ean

当为true时,会在翻页栏之上增加一行false否

forceFit

bool

ean

当为ture时,调整列宽度不会改变表格的宽度。

当shrinkToFit为false时,此属性会被忽略

false否

gridstat

e

stri

ng

定义当前表格的状态:'visible'or'hidden'visible否

gridview

bool

ean

构造一行数据后添加到grid中,如果设为true

则是将整个表格的数据都构造完成后再添加到

grid中,但treeGrid,subGrid,or

afterInsertRow不能用

false是

height

mixe

d

表格高度,可以是数字,像素值或者百分比150否

hiddengr

id

bool

ean

当为ture时,表格不会被显示,只显示表格的

标题。只有当点击显示表格的那个按钮时才会去

初始化表格数据。只有当caption属性不为空而

且hidegrid为ture时才起作用

false否

Jqgrid中文文档---整理:沧浪雾月客

60

hidegrid

bool

ean

启用或者禁用控制表格显示、隐藏的按钮,只有

当caption属性不为空时起效

true否

hoverrow

s

bool

ean

当为false时mousehovering会被禁用false是

jsonRead

er

arra

y

描述json数据格式的数组,否

lastpage

inte

ger

只读属性,定义了总页数0否

lastsort

inte

ger

只读属性,定义了最后排序列的索引,从0开始0否

loadonce

bool

ean

如果为ture则数据只从服务器端抓取一次,之

后所有操作都是在客户端执行,翻页功能会被禁

false否

loadtext

stri

ng

当请求或者排序时所显示的文字内容

Loading...

.

loadui

stri

ng

当执行ajax请求时要干什么。disable禁用ajax

执行提示;enable默认,当执行ajax请求时的

提示;block启用Loading提示,但是阻止其他

操作

enable是

mtype

stri

ng

请求的类型:(“POST”or“GET”)GET是

multikey

stri

ng

只有在multiselect设置为ture时起作用,定

义使用那个key来做多选。shiftKey,altKey,

ctrlKey

空值是

multibox

only

bool

ean

只有当multiselect=true.起作用,当

multiboxonly为ture时只有选择checkbox才

会起作用,

false是

multisel

ect

bool

ean

定义是否可以多选false否

multisel

ectWidth

inte

ger

当multiselect为true时设置multiselect列

宽度

20否

page

inte

ger

设置初始的页码1是

pager

mixe

d

指定分页栏对象,必须为一个有效的html元素。

可以是'pager','#pager',jQuery('#pager').

推荐用'#pager'

空值否

pagerpos

stri

ng

指定分页栏的位置center否

pgbutton

s

bool

ean

是否显示翻页按钮true否

pginputbool是否显示跳转页面的输入框true否

Jqgrid中文文档---整理:沧浪雾月客

61

ean

pgtext

stri

ng

当前页信息

语言包中设

prmNames

arra

y

DefaultvaluesprmNames:

{page:“page”,rows:“rows”,sort:

“sidx”,order:“sord”,

search:“_search”,nd:“nd”,npage:null}

当参数为null时不会被发到服务器端

none是

postData

arra

y

此数组内容直接赋值到url上,参数类型:

{name1:value1…}

空array是

reccount

inte

ger

只读属性,定义了grid中确切的行数。通常情

况下与records属性相同,但有一种情况例外,

假如rowNum=15,但是从服务器端返回的记录数

是20,那么records值是20,但reccount值仍

然为15,而且表格中也只显示15条记录。

0否

recordpo

s

stri

ng

定义了记录信息的位置:left,center,rightright否

records

inte

ger

只读属性,定义了返回的记录数none否

recordte

xt

stri

ng

显示记录数信息。{0}为记录数开始,{1}为记

录数结束。viewrecords为ture时才能起效,

且总记录数大于0时才会显示此信息

语言包是

resizecl

ass

stri

ng

定义一个class到一个列上用来显示列宽度调整

时的效果

空值否

rowList

arra

y[]

一个数组用来调整表格显示的记录数,此参数值

会替代rowNum参数值传给服务器端。如果为空

则不显示,设置格式:[10,20,30]。

[]否

rownumbe

rs

bool

ean

如果为ture则会在表格左边新增一列,显示行

顺序号,从1开始递增。此列名为'rn'.

false否

rowNum

inte

ger

设置表格中显示的记录数,参数会被自动传到后

台。如果此参数设为10,但是从服务器端返回

15条记录,那么在表格中只会显示10条记录。

如果设为-1则禁用此检查

20是

rownumWi

dth

inte

ger

如果rownumbers为true,则可以设置column的

宽度

25否

savedRow

arra

y

只读属性,只用在编辑模式下保存数据空值否

scroll

bool

ean

or

inte

创建一个动态滚动的表格,当为true时,翻页

栏被禁用,使用垂直滚动条加载数据,且在首次

访问服务器端时将加载所有数据到客户端。当此

参数为数字时,表格只控制可见的几行,所有数

false否

Jqgrid中文文档---整理:沧浪雾月客

62

ger据都在这几行中加载

scrollOf

fset

inte

ger

设置垂直滚动条宽度18否

scrollro

ws

bool

ean

当为true时让所选择的行可见false是

selarrro

w

arra

y-[]

只读属性,用来存放当前选择的行

emptyarray

[]

selrow

stri

ng

只读属性,最后选择行的idnull否

shrinkTo

Fit

bool

ean

此属性用来说明当初始化列宽度时候的计算类

型,如果为ture,则按比例初始化列宽度。如果

为false,则列宽度使用colModel指定的宽度

true否

sortable

bool

ean

是否可排序false否

sortname

stri

ng

排序列的名称,此参数会被传到后台空字符串是

sortorde

r

stri

ng

排序顺序,升序或者降序(ascordesc)asc是

subGrid

bool

ean

是否使用suggridfalse否

subGridM

odel

arra

y-[]

subgrid模型emptyarray否

subGridT

ype

mixe

d

如果为空则使用表格的dataTypenull是

subGridU

rl

stri

ng

加载subgrid数据的url,jqGrid会把每行的id

值加到url中

空值是

subGridW

idth

inte

ger

subgrid列的宽度20否

toolbar

arra

y

表格的工具栏。数组中有两个值,第一个为是否

启用,第二个指定工具栏位置(相对于body

layer),如:[true,”both”]。工具栏位置

可选值:“top”,”bottom”,“both”.如果

工具栏在上面,则工具栏id为“t_”+表格id;

如果在下面则为“tb_”+表格id;如果只有一

个工具栏则为“t_”+表格id

[false,'']否

totaltim

e

inte

ger

只读属性,计算加载数据的时间。目前支持xml

跟json数据

0否

treedata

type

mixe

d

数据类型,通常情况下与datatype相同,不会

null否

treeGrid

bool

ean

启用或者禁用treegrid模式false否

Jqgrid中文文档---整理:沧浪雾月客

63

treeGrid

Model

stri

ng

treeGrid所使用的方法nested否

treeIcon

s

arra

y

树的图标,默认值:

{plus:'ui-icon-triangle-1-e',minus:'ui-ic

on-triangle-1-s',leaf:'ui-icon-radio-off'

}

treeRead

er

arra

y

扩展表格的colModel且加在colModel定义的后

tree_roo

t_level

nume

ric

root元素的级别,0否

url

stri

ng

urlnull是

userData

arra

y

从request中取得的一些用户信息emptyarray否

userData

OnFooter

bool

ean

当为true时把userData放到底部,用法:如果

userData的值与colModel的值相同,那么此列

就显示正确的值,如果不等那么此列就为空

false是

viewreco

rds

bool

ean

是否要显示总记录数false否

viewsort

cols

arra

y

定义排序列的外观跟行为。数据格式:

[false,'vertical',true].第一个参数是说,是

否都要显示排序列的图标,false就是只显示当

前排序列的图标;第二个参数是指图标如何显

示,vertical:排序图标垂直放置,horizontal:

排序图标水平放置;第三个参数指单击功能,

true:单击列可排序,false:单击图标排序。

说明:如果第三个参数为false则第一个参数必

须为ture否则不能排序

width

numb

er

如果设置则按此设置为主,如果没有设置则按

colModel中定义的宽度计算

none否

xmlReade

r

arra

y

对xml数据结构的描述否

jqGrid学习------------------jqGrid参数

url获取数据的地址

datatype

从服务器端返回的数据类型,默认xml。可选类型:xml,local,

json,jsonnp,script,xmlstring,jsonstring,clientside

mtypeajax提交方式。POST或者GET,默认GET

colNames列显示名称,是一个数组对象。

Jqgrid中文文档---整理:沧浪雾月客

64

colModel

对显示列属性的设置,是一个数组对象。常用到的属性:name列

显示的名称;index传到服务器端用来排序用的列名称;width列

宽度;align对齐方式;sortable是否可以排序

pager

定义翻页用的导航栏,必须是有效的html元素。翻页工具栏可以

放置在html页面任意位置

rowNum在grid上显示记录条数,这个参数是要被传递到后台

rowList

一个下拉选择框,用来改变显示记录数,当选择时会覆盖rowNum

参数传递到后台

sortname

默认的排序列。可以是列名称或者是一个数字,这个参数会被提交

到后台

viewrecords定义是否要显示总记录数

caption表格名称

jqGrid学习-----------------第一个实例

1、html文件

Java代码

1.

"/TR/xhtml1/DTD/">

2.

g="en">

3.

4.

utf-8"/>

5.MyFirstGrid

6.

7.

"css/ui-lightness/"/>

8.

"css/"/>

9.

10.

,body{

:0;

g:0;

-size:75%;

15.}

16.

17.

18.

20.

21.

22.

60.

61.

62.

63.

64.

65.

66.

67.

jqGrid需要我们事先指定一个table对象,且有一个唯一的id属性。其他

表格属性比如Cellspacing、cellpadding跟border不要自己设置,jqGrid会

设置。

因为我们要分页,所以要定义一个分页的div对象,同样必须有id属性。

jqGrid的用法:

Java代码

('#grid_selector').jqGrid(options)

grid_selector就是table的id值,

optoins是一个json对象:

Java代码

1.{

:WEB_PATH+'/example/',

3.//url:WEB_PATH+'/excludes/',

pe:'json',

es:['编号','姓名','密码','年龄','地址','出生日

期'],

el:[

7.{name:'id',index:'id',width:90,sorttype:"int"

},

8.{name:'username',index:'name',width:110,sortt

ype:"int"},

Jqgrid中文文档---整理:沧浪雾月客

67

9.{name:'password',index:'password',width:80},

10.{name:'age',index:'age',width:80},

11.{name:'address',index:'address',width:80},

12.{name:'time',index:'time',width:80,sorttype:"

date"}

13.],

14.

h:WEB_PATH+'/resources/javascript/plugins/j

qgrid/css/smoothness/images',

:10,

t:[10,20,30],

:"pjmap",

19.

elect:false,

me:'id',

cords:true,

der:"desc",

ader:{

:"dataRows",

items:false

27.},

n:"jqGridtest",

:220

30.}

4、服务端文件

Java代码

;

2.

ist;

p;

;

;

7.

;

9.

ray;

ject;

Jqgrid中文文档---整理:沧浪雾月客

68

12.

13.

tion;

15.

classJqGridActionextendsBaseAction

17.{

18.

19./**

20.*

21.*/

estaticfinallongserialVersionUID=1L;

23.

24.

eintpage=1;

26.

einttotal=3;

28.

eintrows=0;

30.

eListdataRows=newArrayList();

32.

Stringexecute()

34.{

rayt_list=newJSONArray();

(inti=0;i<3;i++){

jectstudent=newJSONObject();

38.//Mapstudent=newHashMap();

("username","王三");

("password","123");

("age",20+i);

("address","USA");

("id",i);

(i,student);

45.}

46.

47.//JSONArrayay=ject(rows);

n("tttttttttttt======"+t_ng());

49.//nString(t_ng()

);

Jqgrid中文文档---整理:沧浪雾月客

69

SUCCESS;

51.}

52.

53.//@JSON(serialize=false)

intgetPage()

55.{

page;

57.}

58.

voidsetPage(intpage)

60.{

=page;

62.}

63.

64.//@JSON(serialize=false)

intgetTotal()

66.{

total;

68.}

69.

voidsetTotal(inttotal)

71.{

=total;

73.}

74.

75.//@JSON(serialize=false)

intgetRows()

77.{

rows;

79.}

80.

voidsetRows(introws)

82.{

=rows;

84.}

85.

ListgetDataRows()

87.{

dataRows;

89.}

90.

voidsetDataRows(ListdataRows)

92.{

ws=dataRows;

Jqgrid中文文档---整理:沧浪雾月客

70

94.}

95.

96.

97.}

返回的json数据格式:

Java代码

1.{"dataRows":[{"password":"123","age":20,"address":"USA","userna

me":"王三

","id":0},{"password":"123","age":21,"address":"USA","username"

:"王三

","id":1},{"password":"123","age":22,"address":"USA","username"

:"王三","id":2}],"page":1,"rows":10,"total":3}

•11:43

•浏览(329)

使用jqGrid修改数据并检查

文章分类:Web前端

jqGrid可以有三种方式,让我们来修改显示在jqGrid中的数据。这三种方式分

别是:

CellEditing——只允许修改某一个单元格内容.(所有图片均来自jqGrid的

wiki或者jqGrid的Demo截图)

Jqgrid中文文档---整理:沧浪雾月客

71

InlineEditing——允许在jqGrid中直接修改某一行的数据

FormEditing——弹出一个新的编辑窗口进行编辑和新增

Jqgrid中文文档---整理:沧浪雾月客

72

暂时先不管这三种方式,我们来看看如何让一个jqGrid的数据能够进行编辑

呢?

其实很简单,就是在jqGrid的colModel属性中,设置几个属性:

editable

可选值是true或者false,默认是false。用来说明这个列的数据是否

可编辑。特别要注意的是,jqGrid的隐藏字段就算设置了这个属性为true,一

样不能被编辑。在CellEditing以及InlineEditing模式下,只能通过把这些

字段设置为可见来修改。在FormEditing模式下,可以通过editoptions参数

来设置是否可以修改隐藏列。

edittype

可选的值是'text','textarea','select','checkbox','password',

'button','image','file'以及'custom'。默认值是text。

根据名字就可以看出来,这个属性是设置编辑框的HTML样式的。比如,

设置为text值,并且可以在editoptions中设置size以及maxlength等属性。

这样生成的HTML样式有点类似

maxlength="15"/>这样。

其中有几个要注意:

设置checkbox的时候,需要在editoptions中指定value值,第一个值

应该是checked的时候的值。比如editoptions:{value:"Yes:No"}会设定这个

checkbox编辑框,选中的时候,值是Yes,没选中的时候值是No。建议最好都

设定一下这个值。

设置select的时候,editoptions中需要设定select下拉框的值。

一种方式是用字符串设置editoptions的value属性,像这样

editoption:{value:“FE:FedEx;IN:InTime;TN:TNT”},这就为下拉框设

置了三个可选值。注意,冒号前面的代表的是值,冒号后面代表的是显示值。

第二种方式是用对象来设置editoptions的value属性,这个

时候,value值要用{}包括起来,像这样:

Jqgrid中文文档---整理:沧浪雾月客

73

editoptions:{value:{1:'One',2:'Two'}}。

第三种方式,是为editoptions设置dataUrl参数。意思就是

select的值,是通过一个URL来获取的,比如一个Ajax请求的返回值。特别需

要注意的是,在这种情况下,URL的返回值必须是包括select以及option这些

HTML标签的。就像这样:One

value="2">Two.这种情况下,还可以在editoptions中设置

是否允许多选,size等等。

设置image的时候,editoptions的src属性用来指定图片的地址。

custom类型就是通过一个函数来指定需要编辑的元素,并返回需要提交

的值。

函数的定义在editoptions中说明,分别是custom_element

用来指定哪一个函数用来创建编辑框,注意这里函数必须返回一个新的DOM元

素,函数的参数一个是值Value,另外一个是colModel的editoptions值。

另外一个是custom_value,这个函数用来在编辑完成之后返回

本编辑框的值,这个函数的参数是元素对象。大概的调用格式如下:

editoptions

除了上面介绍的editoptions选项外,我们还可以设置defaultValue

等等,更复杂的东西,比如dataEvents就不介绍了。

Jqgrid中文文档---整理:沧浪雾月客

74

editrules

editrules是用来设置一些可用于可编辑列的colModel的额外属性的。

大多数的时候是用来在提交到服务器之前验证用户的输入合法性的。比如

editrules:{edithidden:true,required:true....}。

可选的属性包括:

edithidden:只在FormEditing模式下有效,设置为true,就可以让

隐藏字段也可以修改。

required:设置编辑的时候是否可以为空(是否是必须的)。

number:设置为true,如果输入值不是数字或者为空,则会报错。

integer:

minValue:

maxValue:

email:

url:检查是不是合法的URL地址。

date:

time:

custom:设置为true,则会通过一个自定义的js函数来验证。函数定

义在custom_func中。

custom_func:传递给函数的值一个是需要验证value,另一个是定义在

colModel中的name属性值。函数必须返回一个数组,一个是验证的结果,true

或者false,另外一个是验证错误时候的提示字符串。形如[false,”Please

entervalidvalue”]这样。

自定义验证的例子:

(value20)return[false,"Pleaseentervaluebetween0and

20"];elsereturn[true,""];}jQuery("#grid_id").jqGrid({...colModel:

[...{name:'price',...,editrules:{custom:true,

custom_func:mypricecheck....},editable:true},...]...});//>

formoptions(只在FormEditing方式下有效),他的主要作用是用来重新排序

Form中的编辑元素,同时可以在编辑元素前或者编辑元素后增加一些信息(比

如,一些提示信息,或者一个红色的*表示必须要填写等等)。

可选的属性如下:

elmprefix:字符串值,如果设置了,则会在编辑框之后出现一些内容(可

能是HTML的内容)

elmsuffix:字符串值,如果设置了,则会在编辑框之前出现一些内容(可

能是HTML的内容)

label:字符串值,如果设置了,则这个值会替换掉colNames中的值出

现作为该编辑框的标签显示

rowpos:数字值,决定元素行在Form中的位置(相对于文本标签again

withthetext-label)

colpos:数字值,决定元素列在Form中的位置(相对于标签againwith

thelabel)

两个编辑框可以有相同的rowpos值,但是colpos值不同,这会把这两

个编辑框放到Form的同一行中。

特别注意:如果设置了rowpos以及colpos的值,强烈推荐为所有的其

他编辑元素都设置这些值。

👁️ 阅读量:0