首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >用于预定义格式化程序的jqGrid非格式化程序

用于预定义格式化程序的jqGrid非格式化程序
EN

Stack Overflow用户
提问于 2016-05-18 22:25:05
回答 1查看 137关注 0票数 1

我有一个jqGrid,其中colModel的格式化程序函数必须定义为字符串。

代码语言:javascript
运行
复制
{name:'FileSize', index:'FileSize', width:90, editable: true, 
                                            formatter: 'fileSizeFormatter'}

在格式化程序函数不是字符串的情况下,我不能使用以下方法,因为我在C#服务器端构建了colmodel。如果我可以使用非字符串格式化程序,定义未格式化程序将是一个解决方案,如这里所示

代码语言:javascript
运行
复制
{name:'FileSize', index:'FileSize', width:90, editable: true, 
                                                formatter: fileSizeFormatter}

下面是我使用fileSizeFormatter所需的fn.fmatter,因为格式化程序是作为字符串传递的,并且代码假定它是预定义的文件"select",“...etc”

代码语言:javascript
运行
复制
$.fn.fmatter.fileSizeFormatter = function (cellval, options) {
    var fileUnit = "B";
    if (cellval) {
        var fileUnit;
        var iKBFileSize;
        if (cellval < 1024) {
            iKBFileSize = cellval;
        } else {
            iKBFileSize = cellval / 1024;
            fileUnit = "KB";
        }

        var result = iKBFileSize.toFixed(1) + fileUnit;
        return result;
    }

    return cellval + fileUnit;
};

示例

因此,问题是如何为作为字符串传递的格式化程序定义未格式化程序。当我执行grid.getrowdata或编辑单元格时,不使用我的未格式化程序。它正在用文件单元给我数据。

代码语言:javascript
运行
复制
$.unformat.fileSizeFormatter = function (cellvalue, options, cell) {
    return $('input', cellval).is(":checked") ? true : false;
};
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2016-05-18 22:38:45

您应该用另一种方式来定义未格式化程序:

代码语言:javascript
运行
复制
$.fn.fmatter.fileSizeFormatter.unformat = function (cellValue, options, elem) {
    return $(elem).find('input').is(":checked") ? true : false;
}

您应该在定义格式化程序($.fn.fmatter.fileSizeFormatter)之后定义原因的未格式化程序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37311081

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档