这篇中将补充说明一些之前没有讲到的细节内容,比如一些特殊功能的jqGrid选项、jqGrid的事件等等。
1. jqGrid选项补充说明
之前已经介绍了许多经常用到的jqGrid选项,还有一部分虽然还没有介绍,但却能肩负特殊的功能。例如:
- altRows :当次此选项为true时,表格的行将呈现交替样式显示(zebra-striped)。
- altclass :此选项只在altRows为true时才有效,交替显示的样式;默认值为:ui-priority-secondary。
- datastr :当datatype选项为xmlstring或jsonstring时,设置此选项可以充当Grid中的数据内容。
- deepempty :如果有事件或者插件被绑定到表格的cell上,则应该经此选项设为true;此选项将使用jQuery的empty方法来处理行及其子元素的回收工作;虽然会有性能下降,但可以避免内存泄露。
- forceFit :如果此选项为true,则当调整某一列的宽度的时候,其右侧相邻的列也会相应调整宽度,以保持整个表格的宽度不变;但此选项受制于shrinkToFit选项,当shrinkToFit为false时,此选项也将被忽略。
- gridstate :当使用了hiddengrid、hidegrid、caption选项的时候,决定表格的状态;可能的值为visible和hidden,默认值为visible。
- hidegrid :由于控制是否启用或禁用表格标题栏中的“显示/隐藏”表格按钮;只有在caption属性为非空字符串的情况下有效。
- hiddengrid :如果设为true,则表格在初始化状态下是隐藏的,只有标题栏显示,且不会像Server发送请求,也就不会载入任何数据;只有第一次点击标题栏中的“显示/隐藏”表格按钮后,才会向Server发送请求,载入数据,显示表格;此选项只有在caption选项非空,且hidegrid为true的情况下才有效。
- lastpage :只读选项,表示从请求返回的总页码数,默认为0。
- lastsort :只读选项,表示最后一次排序使用的列的索引序数,从0开始,默认为0。
- loadonce :如果此项为true,则只向Server发送一次请求。当第一次请求结束后,datatype选项自动变更为local,所有的后续操作都只是基于客户端的;而pager的各项功能也都将被禁用。
- multiselect :如果此项为true,则允许多行同时选择;在表格的左端将出现新的一列,用于多行选择。
- multikey :此项只在multiselect为true时有意义,定义按哪个键来进行多行选择,可能的值:shiftKey、altKey、ctrlKey。
- multiboxonly :此项只在multiselect为true时有意义;如果此项为true,则只有点击多选列中的checkbox,才能进行多行选择,点击行的其他位置,都只是单行选择。
- multiselectWidth :设置多选列的宽度。
- selarrrow :只读选项,表示在multiselect为true时,多选行的id数组。
- postData :{name:value,...}类型的数组,此数组中的元素将会作为参数,被直接传入url;
- sortname :表格初始化时使用的排序列的index。
- sortorder :表格初始化时使用的排序方式,asc或desc。
- scroll :创建动态滚动的表格,可以使用垂直滚动条来载入数据。此选项可以接受boolean值或integer值;默认为false;如果为true,则表格将保持从开始到现在所有曾经显示行;如果为设为数值(例如1),则表格只保持当前显示的数据行,以防内存泄露。(具体参见官方文档http://www.trirand.com/jqgridwiki/doku.php?id=wiki:options )
2. colModel选项补充说明
- align :文本对齐方式,left、center、right。
- datefmt :日期格式,默认为ISO格式(Y-m-d),使用的是PHP风格的日期格式,参见官方文档。
- formatter :使用预定义的格式,或者用于控制此列格式的自定义函数名。具体参见官方文档(http://www.trirand.com/jqgridwiki/doku.php?id=wiki:predefined_formatter )。
- key :当从Server得到的数据中不包括id的时候,设定该列充当id,以代表唯一的行id;最多可以有一列设置此选项为true;如果多于一列设置了此项为true,则第一个设定的列将充当id列,其余的将被忽略。
注:
- name选项的值可以包含“.”,例如patentCaseType.caption,即对应从gridModel(根据我的jsonReader设置)中的元素的patentCaseType属性的caption属性;
- name选项主要用途是用来解析从response中传来的对应数据;
- index选项主要用途是用来在查询和排序时,向Server传递对应的参数;
3. jqGrid事件
事件说明列表可以参考官方文档(http://www.trirand.com/jqgridwiki/doku.php?id=wiki:events ),不再赘述。
需要说明的是,自从3.6.3版本以后,可以在对应的事件方法函数中使用$(this)来应用jqGrid对象。