如何在custom-format函数中获取列信息(名称或ID)?

grid.php中的一些代码:

$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; }


在生成的页面中找到的Javascript代码摘录(查看源代码):

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:如果需要更多详细信息,请告诉我。

最佳答案

因为您使用的是repeatitems: false数据格式,所以网格的输入数据应该是具有命名属性的项目,这些名称与namecolModel属性的值相同。因此,用作formatPdfLinkformatter函数将以与原始数据相同的简单格式获取第三个参数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包含属性rowIdcolModelgidpos。自定义格式化程序内部的this初始化为网格的DOM,因此您可以使用例如$(this).jqGrid("getGridParam", "parameterName")或仅使用this.p.parameterName来访问jqGrid的其他选项。属性colModel仅包含当前列的列定义,而不包含完整的colModel参数。

例如,您可以重写上面的代码以设置colNames中的下一个代码,而不是工具提示中的name属性:

function formatPdfLink(cellValue, options, rowObject) {
    //var colNames = $(this).jqGrid("getGridParam", "colNames");
    var colNames = this.p.colNames;
    return "<a href='" + cellValue +
        "' title='" + colNames[options.pos] +
        "' ><img src='../img/PDF_icon.png ' /></a> ";
}

关于javascript - JqSuite PHP:获取列名或ID?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/20634037/

10-12 01:06