jqgrid格式化程序无法正常工作且无响应

时间:2014-12-15 05:29:45

标签: jqgrid

我有一个js文件和名为viewLineBtn的函数名称。

在我的服务器代码中,我创建了一个对象列表

    List<GridModelClass> addmodelResult = new List<GridModelClass>();

    addmodelResult.Add(new GridModelClass { name = "AddTestApprove", label = "Approve", width = "40", hidden = false, formatter = "viewLineBtn" });

但是,viewLineBtn无法识别。怎么解决?

1 个答案:

答案 0 :(得分:2)

似乎您从服务器返回JSON数据返回colModel。结果,您拥有formatter属性,其类型为string(如formatter: "viewLineBtn")而非函数(如formatter: viewLineBtn,其中viewLineBtn之前定义为函数)。

要解决此问题,您可以更改格式化程序功能的定义方式。而不是用法

function viewLineBtn (cellValue, options, rowObject) {
   // do something here
   return htmlFragmentOfCell;
}

你应该使用

$.extend($.fn.fmatter, {
    viewLineBtn: function (cellValue, options, rowObject) {
       // do something here
       return htmlFragmentUsedInCell;
    }
});

如果您可以在formatter: "viewLineBtn"中使用colModel

如果您定义custom unformatter,我建议您定义始终custom formatterunformat属性)。要在使用字符串值为formatter的情况下执行此操作,您应按以下方式定义unformatter:

$.extend($.fn.fmatter, {
    viewLineBtn: function (cellValue, options, rowObject) {
       // do something here
       return htmlFragmentUsedInCell;
    }
});
$.extend($.fn.fmatter.viewLineBtn, {
    unformat: function (cellValue, options, elem) {
        // do something here
        return htmlFragmentFromDomElem;
    }
});