繁体   English   中英

如何动态绑定jqGrid colModel Formatter

[英]How to bind jqGrid colModel Formatter dynamically

我正在尝试动态绑定jqGrid列Model的格式化程序。 我按如下所示动态构建colModel数组。

ColModel:[{name:Id,width:50,formatter:customerLinkFormatter}]

我将格式化程序扩展如下

$.extend($.fn.fmatter, {
customerLinkFormatter: function (cellvalue, options, rowdata) {
    return '<a href="CustomerEdit.aspx?id=' + rowdata[options.colModel.name] + '"> ' + cellvalue + '</a>';
}

});

但是,“ Id”列未显示任何链接。 请帮我弄清楚。

这是代码的一部分

$(document).ready(function () {
        "use strict";
        $.ajax({
            type: "POST",
            url: "../Hdlr.ashx?",
            datatype: "json",
            success: function (msg) {
                jqcolNames = msg.ColNames,
                jqcolModel = msg.ColModel,

                PopulateGrid();
            },
            error: function (msg) {
                alert(' error  ' + msg.responseText);
            }
        });
    });

    function PopulateGrid() {
        $('#list').jqGrid({
            url: "../Hdlr.ashx?",
            colNames: jqcolNames,
            colModel: jqcolModel,
            jsonReader: {
                cell: "",
                id: "0",
                repeatitems: false
            },
            rowNum: 10,
            rowList: [10, 20, 30],
            pager: "#pager",
            rownumbers: true,
            viewrecords: true,
            search: false,
            caption: "Grid Information"
        }).jqGrid("navGrid", "#pager", { edit: false, add: false, del: false, search: false });
    }

尝试定义formatter ,就像定义一个函数一样:

  function customerLinkFormatter(cellvalue, options, rowdata) {
               return '<a href="CustomerEdit.aspx?id=' + rowdata.name + '"> ' + cellvalue + '</a>';
            };

如果扩展了$.fn.fmatter ,则应使用字符串 “ customerLinkFormatter”而不是直接使用customerLinkFormatter函数:

colModel:[{name: "Id", width: 50, formatter: "customerLinkFormatter"}]

如果您之前未使用相应的字符串值定义Id变量,则name:Id的用法也是错误的。

您撰写了有关动态绑定jqGrid的格式化程序的文章。 您只需要在colModel内部更改formatter属性。 例如,可以使用setColProp方法。 请参阅此处setColProp用法setColProp

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM