
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