1

我需要动态地将列加载到 Jqgrid 并尝试遵循 jqGrid 和动态列绑定

我正在尝试 MVC。对于列名,我从表中获取(其中包含要在 GRID 中显示的列列表)并返回简单的 Json 数据。

我如何为 ColModel 实现。例如:我需要像这样动态发送 JSon 对象

     {name: 'Airport', formatter: UrlFmatter, width: 95, align: "center", index: 'AIRPORT', searchoptions: { sopt: ['eq', 'ne', 'cn']} }
  {name: 'Country', width: 100, align: "center", index: 'Country', searchoptions: { sopt: ['eq', 'ne', 'cn']} }

我的设计应该如何发送 json 来设置 colModel ?

我的 UrlFmatter 代码

function UrlFmatter(cellvalue, options, rowObject) {
                    return "<a href='DetailResult?airportname=" + options.rowId + "' >" + cellvalue + "</a>";
                }

我如何根据您对格式化和取消格式化的回答编写?谢谢

4

1 回答 1

1

formatter: UrlFmatter我想您在 JSON 中发送有关格式化程序 ( ) 的信息时遇到问题。JSON 字符串不支持函数作为数据类型。解决问题的最简单方法似乎是我以与标准格式化程序相同的方式注册您的格式化程序。例如,您是否希望格式化程序具有"myUrlFormatter"可以使用以下名称的名称

(function ($) {
    'use strict';
    /*jslint unparam: true */
    $.extend($.fn.fmatter, {
        myUrlFormatter: function (cellValue, options) {
            // you should place here the code of 
            // your custom formatter UrlFmatter
        }
    });
    $.extend($.fn.fmatter.myUrlFormatter, {
        unformat: function (cellValue, options, elem) {
            // you should place here the code of 
            // your custom unformatter
        }
    });
}(jQuery));

您应该在之后 jquery.jqGrid.min.js(或之后jquery.jqGrid.src.js)包含代码。注册格式化程序后,您可以将其colModel用作

{name: "Airport", index: "AIRPORT", formatter: "myUrlFormatter", width: 95,
    align: "center", searchoptions: { sopt: ["eq", "ne", "cn"]} }

所以formatter属性的值将是字符串formatter: "myUrlFormatter")而不是函数(formatter: UrlFmatter)。

于 2013-03-14T14:42:32.007 回答