jqgrid设置列数据
时间: 2023-12-14 21:03:38 浏览: 72
在 jqGrid 中设置列数据可以通过 `colModel` 属性中的 `formatter` 函数来实现。该函数用于格式化列数据,并返回格式化后的结果。下面是一个示例:
```javascript
colModel: [
{ name: 'id', index: 'id', width: 55 },
{ name: 'name', index: 'name', width: 200 },
{ name: 'gender', index: 'gender', width: 100, formatter: genderFormatter }
]
function genderFormatter(cellvalue, options, rowObject) {
return cellvalue == 0 ? 'Male' : 'Female';
}
```
在上面的代码中,我们定义了一个 `genderFormatter` 函数来格式化 `gender` 列的数据。该函数接受三个参数:`cellvalue` 表示单元格的值,`options` 表示列的选项,`rowObject` 表示行的数据。在 `genderFormatter` 函数中,我们判断单元格的值是否为 0,如果是则返回 'Male',否则返回 'Female'。
注意:在使用 `formatter` 函数时,需要将 `sortable` 属性设置为 `false`,否则会导致排序错误。
除此之外,你还可以通过 `cellattr` 函数设置单元格的属性,例如 `title`、`style` 等。下面是一个示例:
```javascript
colModel: [
{ name: 'id', index: 'id', width: 55 },
{ name: 'name', index: 'name', width: 200 },
{ name: 'age', index: 'age', width: 100, formatter: ageFormatter, cellattr: ageCellAttr }
]
function ageFormatter(cellvalue, options, rowObject) {
return cellvalue + ' years old';
}
function ageCellAttr(rowId, val, rawObject, cm, rdata) {
if (parseInt(val) > 30) {
return 'style="color:red;" title="This person is over 30 years old"';
} else {
return '';
}
}
```
在上面的代码中,我们定义了一个 `ageFormatter` 函数来格式化 `age` 列的数据,并在其后面添加了 'years old'。此外,我们还定义了一个 `ageCellAttr` 函数来设置单元格的属性,如果该单元格的值大于 30,则设置文本颜色为红色,并添加一个提示文本。
希望这些代码能够帮助到你。
阅读全文