加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 编程开发 > asp.Net > 正文

JQGrid分组GroupText格式和修改

发布时间:2020-12-16 07:16:45 所属栏目:asp.Net 来源:网络整理
导读:我有一个网格,实现分组,但想扩展显示在groupText:区域的细节.理想情况下,我可以获取有关该分组的数据,并在该组行中显示组名({0}默认值). 换句话说,我想要实现的是一种不仅显示组名而且还显示JSON提要中包含的一些其他数据项的方法. 对于任何能够实现这一目
我有一个网格,实现分组,但想扩展显示在groupText:区域的细节.理想情况下,我可以获取有关该分组的数据,并在该组行中显示组名({0}默认值).

换句话说,我想要实现的是一种不仅显示组名而且还显示JSON提要中包含的一些其他数据项的方法.

对于任何能够实现这一目标的人来说,我的搜索似乎很短暂,但我希望有人可以阐明扩展这个设置并提供对这个区域进行格式化的途径.

解决方法

我发现你的问题很有趣,但实施并不简单.在 the answer中,我展示了如何在分组的摘要行中使用自定义格式化程序.

在the demo中,您可以看到如何实现分组文本的自定义格式.演示显示以下内容:

该实现仅包括the custom formatter的实现,其可以用于两个目的:格式化相应列的内容以及在按列分组的情况下格式化分组文本.代码有点棘手,但我希望所有人都能遵循它.代码使用输入参数的差异来定义是否将调用格式化程序来格式化列内容或格式化分组文本.

获取像“(test4,test7)”这样的文本的代码的一部分在使用大量行的情况下不是那么有效,但是它有效.

下面是“日期”列的格式化程序代码,通常与预定义的格式化程序一起使用:’date’.我在代码中调用了原始的Date-formatter,但用于分组文本更复杂的代码:

formatter: function (cellval,opts,rowObject,action) {
    var fullOpts = $.extend({},$.jgrid.formatter.date,opts),formattedDate = $.fmatter.util.DateFormat('Y-m-d',cellval,'d-M-Y',fullOpts),groupIdPrefix = opts.gid + "ghead_",groupIdPrefixLength = groupIdPrefix.length,month = Number(cellval.split('-')[1]),// input format 'Y-m-d'
        names = [],data,i,l,item;

    // test wether opts.rowId start with opts.gid + "ghead_" and integer
    // and rowObject is the array and action is undefined.

    if (opts.rowId.substr(0,groupIdPrefixLength) === groupIdPrefix && typeof action === "undefined") {
        // custom formating of the group header
        // we just simulate some login by testing of the month > 9

        // the next code fragment is not effective,but it can be used
        // in case of not so large number of groups and the local data
        data = $(this).jqGrid("getGridParam","data");
        for (i = 0,l = data.length; i < l; i++) {
            item = data[i];
            if (item.invdate === cellval) {
                names.push(item.name);
            }
        }

        return (month > 9 ? ('<span class="ui-icon ui-icon-alert" style="float: left;"></span>' +
            '<span style="color:tomato; margin-left: 5px;">') : "<span>") +
            formattedDate + ' (' + names.join() + ')</span>'
    }
    return formattedDate;
}

更新:演示的固定版本是here.它使用$.fn.fmatter而不是当前从jqGrid方法$.fmatter.util.DateFormat中删除.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读