天天看点

jqGrid ColModel详解

colModel:最重要的数组之一,用于设定各列的参数。

colModel也有许多非常重要的选项,在使用搜索、排序等方面都会用到。这里先只说说最基本的。

• name:为Grid中的每个列设置唯一的名称,这是一个必需选项,其中保留字包括subgrid、cb、rn。

• index:设置排序时所使用的索引名称,这个index名称会作为sidx参数(prmNames中设置的)传递到Server。

• label:当jqGrid的colNames选项数组为空时,为各列指定题头。如果colNames和此项都为空时,则name选项值会成为题头。

• width:设置列的宽度,目前只能接受以px为单位的数值,默认为150。

• sortable:设置该列是否可以排序,默认为true。

• search:设置该列是否可以被列为搜索条件,默认为true。

• resizable:设置列是否可以变更尺寸,默认为true。

• hidden:设置此列初始化时是否为隐藏状态,默认为false。

• formatter:预设类型或用来格式化该列的自定义函数名。常用预设格式有:integer、date、currency、number等

colNames:['ID','角色名称', '角色说明'],

colModel:[

    {name:'ID', index:'ID',width:55,sortable:false,hidden:true},

    {name:"LBMC",width:80,sortable:false},

    {name:"SM",width:80,sortable:false}

],

var rowId = $("#gridTable").getGridParam('selrow');

var rowData = $("#gridTable").getRowData(rowId);

jqGrid就是通过rowId来选择执行其他操作,而不是rowData.ID

注意:rowId是指table tr.id

如果colModel的属性中有name:'id'(小写,从数据库里面读出来的),这个值会把table tr的id覆盖了。此时rowId == rowData.id。

如果colModel的属性中没有有name:'id',会自动生成tr.id

jqGrid生成的源码如下:

<table id="gridTable" class="ui-jqgrid-btable" cellspacing="0" cellpadding="0" tabindex="1" role="grid" aria-multiselectable="true" aria-labelledby="gbox_gridTable" style="width: 1144px;">

<tbody>

<tr id="1" class="ui-widget-content jqgrow ui-row-ltr bgeaeff1" role="row" tabindex="-1">

    <td aria-describedby="gridTable_cb" style="text-align:center;width: 20px;" role="gridcell">

        <input id="jqg_gridTable_1" class="cbox" type="checkbox" name="jqg_gridTable_1" role="checkbox">

    </td>

    <td aria-describedby="gridTable_ID" title="4028818d2e8a1592012e8a1c1c0e0003" style="display:none;"             role="gridcell">4028818d2e8a1592012e8a1c1c0e0003</td>

    <td aria-describedby="gridTable_LBMC" title="2" style="" role="gridcell">2</td>

    <td aria-describedby="gridTable_SM" title="2" style="" role="gridcell">2</td>

</tr>

</tbody>

</table>

ColModel是jqGrid里面最核心的属性。大部分配置都在这里面进行。所有的属性的含义对应如下:

Property Type Description Default
align string

Defines the alignment of the cell in the Body layer, not in header cell. Possible values: left, center, right.

定义单元格对齐方式;可选值:left, center, right。例如:

{name:’id’,align:’left’},实现左对齐。

left
classes string

This option allow to add classes to the column. If more than one class will be used a space should be set. By example classes:’class1 class2′ will set a class1 and class2 to every cell on that column. In the grid css there is a predefined class ui-ellipsis which allow to attach ellipsis to a particular row. Also this will work in FireFox too.

置列的css。多个class之间用空格分隔,如:’class1 class2′ 。表格默认的css属性是ui-ellipsis。这个属性在火狐浏览器中也是有效的。

empty string
datefmt string

Governs format of sorttype:date (when datetype is set to local) and editrules {date:true} fields. Determines the expected date format for that column. Uses a PHP-like date formatting. Currently ”/”, ”-”, and ”.” are supported as date separators. Valid formats are:

y,Y,yyyy for four digits year

YY, yy for two digits year

m,mm for months

d,dd for days.

当sorttype为date和编辑规则的date为true是有效。使用的格式和php一样。默认为Y-m-d

ISODate (Y-m-d)
defval string

The default value for the search field. This option is used only in Custom Searching and will be set as initial search.

查询字段的默认值。这个选项只在自定义所属中有效。

empty
editable boolean

Defines if the field is editable. This option is used in cell, inline and form modules.

设定是否可以对单元格进行编辑{name:’id’,index:’id’, width:180,editable:true},

false
editoptions array

Array of allowed options (attributes) for edittype option editing

编辑的一系列选项。{name:’__department_id’,index:’__department_id’,width:200,editable:true,edittype:’select’,editoptions:{dataUrl:”${ctx}/admin/deplistforstu.action”}},这个是演示动态从服务器端获取数据。

empty array
editrules array

sets additional rules for the editable field editing

编辑的规则{name:’age’,index:’age’, width:90,editable:true,editrules:{edithidden:true,required:true,number:true,minValue:10,maxValue:100}},设定年龄的最大值为100,最小值为10,而且为数字类型,并且为必输字段。

empty array
edittype string

Defines the edit type for inline and form editing Possible values: text, textarea, select, checkbox, password, button, image and file.

编辑的类型,可为text、textarea,select、checkbox、password、button、image、file等。

text
fixed boolean

If set to true this option does not allow recalculation of the width of the column if shrinkToFit option is set to true. Also the width does not change if a setGridWidth method is used to change the grid width.

如果设定为true的话,单元格的大小将无法进行调整(即不可更改其宽度),同样,调用setGridWidth的方法也不会改变其大小。

false
formoptions array

Defines various options for form editing.

form编辑的一些选项

empty
formatoptions array

Format options can be defined for particular columns, overwriting the defaults from the language file. See Formatter for more details.

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

none
formatter mixed

The predefined types (string) or custom function name that controls the format of this field.

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

{name:’sex’,index:’sex’, align:’center’,width:60,editable:true,edittype:’select’,editoptions:{value:’0:待定;1:男;2:女’},formatter:function(cellvalue, options, rowObject){

var temp = “<img src=’${ctx}/jquery-ui-1.7.2.custom/css/img/”

if(cellvalue==1){

temp = temp +”user-white.png”;

} else if(cellvalue==2){

temp = temp +”user-white-female.png”;

} else {

temp = temp + “user-silhouette.png”;

}

temp = temp + “‘ 58">

none

hidedlg boolean

If set to true this column will not appear in the modal dialog where users can choose which columns to show or hide.

如果设置为true将显示在对话框中,可以让用户选择该列是显示或隐藏。

false
hidden boolean

Defines if this column is hidden at initialization.

定义在初始化的时候是否隐藏此列

false
index string

Set the index name when sorting. Passed as sidx parameter.

索引。其和后台交互的参数为sidx

empty string
jsonmap string

Defines the json mapping for the column in the incoming json string.

定义返回的json的映射。

none
key boolean

In case if there is no id from server, this can be set as as id for the unique row id. Only one column can have this property. If there are more than one key the grid finds the first one and the second is ignored.

如果从服务器返回的数据没有id属性,那么此列将被作为唯一的属性而设置为id,只有一个列可以做这项设置。如果设置多于一个,那么只选取第一个,其他被忽略。

false
label string

When colNames array is empty, defines the heading for this column. If both the colNames array and this setting are empty, the heading for this column comes from the name property.

如果colNames为空则用此值来作为列的显示名称,如果都没有设置则使用name 值

none
name string

Set the unique name in the grid for the column. This property is required. As well as other words used as property/event names, the reserved words (which cannot be used for names) include subgrid, cb and rn.

必输项,表格列的名称,所有关键字,保留字都不能作为名称使用包括subgrid, cb and rn.

Required
resizable boolean

Defines if the column can be re sized

是否可以改变大小(主要是宽)

true
search boolean

When used in search modules, disables or enables searching on that column.

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

true
searchoptions array

Defines the search options used searching

设定搜索的选项。

empty
sortable boolean

Defines is this can be sorted.

定义是否可以排序

true
sorttype string

Used when datatype is local. Defines the type of the column for appropriate sorting.Possible values:

int/integer – for sorting integer

float/number/currency – for sorting decimal numbers

date – for sorting date

text – for text sorting

用在当datatype为local时,定义搜索列的类型,可选值:int/integer – 对integer排序float/number/currency – 排序数字date – 排序日期text – 排序文本

text
stype string

Determines the type of the element when searching.

定义搜索元素的类型

text
surl string

Valid only in Custom Searching and edittype : ‘select’ and describes the url from where we can get already-constructed select element

搜索的地址。只在自定义搜索和editype为select的时候有效。

empty string
width number

Set the initial width of the column, in pixels. This value currently can not be set as percentage

在初始化的宽度,这个值不可以使用百分比的格式。初始化为150pixels。

{name:’id’,index:’id’, width:180,editable:true,editoptions:{readonly:true,size:10}}

150
xmlmap string Defines the xml mapping for the column in the incomming xml file. none
unformat function

Custom function to “unformat” a value of the cell when used in editing Unformat is also called during sort operations. The value returned by unformat is the value compared during the sort.)

和format对应。

null