如何在custom-format函数中获取列信息(名称或ID)?
$grid->dataType = 'json';
$grid->setColModel();
function formatPdfLink(cellValue, options, rowObject) {
var cellHtml = "<a href='" + cellValue + "' title='" + [show column Name here] + "' ><img src='../img/PDF_icon.png ' /></a> ";
return cellHtml; }
jQuery(document).ready(function($) {
jQuery('#grid').jqGrid({
"jsonReader": {
"repeatitems": false,
"subgrid": {
"repeatitems": false
}
},
"xmlReader": {
"repeatitems": false,
"subgrid": {
"repeatitems": false
}
},
"colModel": [{ {
"name": "pdf_1",
"index": "pdf_1",
"sorttype": "string",
"label": "C",
"sortable": false,
"width": 25,
"align": "center",
"search": false,
"formatter": formatPdfLink,
"unformat": unformatPdfLink,
"editoptions": {
"size": 100
},
"editable": true
}
}]
我尝试使用rowObject.columnName
,但它不起作用!
注意:我没有使用loadonce: true
PS:如果需要更多细节,请告诉我。
答案 0 :(得分:2)
因为您使用repeatitems: false
格式的数据,所以网格的输入数据应该是具有命名属性的项目,这些属性的名称与name
中colModel
属性的值相同。因此,用作formatPdfLink
的{{1}}函数将以与原始数据相同的简单格式获得第三个参数formatter
。例如,可以使用rowObject
。要访问其他列,您只需使用rowObject.pdf_1
中使用的name
属性值作为列。
更新:如果您多次使用相同的自定义格式化程序,则可能需要访问当前列的属性。 colModel
参数可以为您提供帮助。
options
参数function formatPdfLink(cellValue, options, rowObject) {
return "<a href='" + cellValue +
"' title='" + options.colModel.name +
"' ><img src='../img/PDF_icon.png ' /></a> ";
}
包含属性options
,rowId
,colModel
和gid
。自定义格式化程序内的pos
被初始化为网格的DOM,因此您可以使用例如this
或$(this).jqGrid("getGridParam", "parameterName")
来访问jqGrid的其他选项。属性this.p.parameterName
仅包含当前列的列定义,而不包含完整的colModel
参数。
例如,您可以在工具提示中重写上面的代码,从colModel
而不是colNames
属性设置下一个代码:
name