JQGrid分组组文本格式和修改

JQGrid分组组文本格式和修改,jqgrid,jqgrid-asp.net,jqgrid-php,jqgrid-formatter,Jqgrid,Jqgrid Asp.net,Jqgrid Php,Jqgrid Formatter,我有一个实现分组的网格,但希望扩展groupText:区域中显示的详细信息。理想情况下,我将能够获取有关该分组的数据,并以组名({0}默认值)显示在该组行中 换句话说,我试图实现的是一种不仅显示组名,还显示JSON提要中包含的其他数据项到网格的方法 我的搜索似乎对任何能够实现这一点的人来说都是不足的,但我希望有人能够对扩展此设置和提供形成此区域的访问提供一些帮助 我觉得你的问题很有趣,但实现并不简单。在中,我在前面演示了如何在分组的摘要行中使用自定义格式化程序 在中,您可以看到如何实现分组文本的

我有一个实现分组的网格,但希望扩展groupText:区域中显示的详细信息。理想情况下,我将能够获取有关该分组的数据,并以组名({0}默认值)显示在该组行中

换句话说,我试图实现的是一种不仅显示组名,还显示JSON提要中包含的其他数据项到网格的方法


我的搜索似乎对任何能够实现这一点的人来说都是不足的,但我希望有人能够对扩展此设置和提供形成此区域的访问提供一些帮助

我觉得你的问题很有趣,但实现并不简单。在中,我在前面演示了如何在分组的摘要行中使用自定义格式化程序

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

该实现仅包括以下两个目的的实现:格式化相应列的内容,以及在按列分组的情况下格式化分组文本。代码有点棘手,但我希望所有人都能理解它。代码使用输入参数的差异来定义是调用格式化程序格式化列内容还是格式化分组文本

在使用大量行的情况下,代码中获取文本(如“(test4,test7)”的一部分并不那么有效,但它可以工作

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

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_uz”,
groupIdPrefixLength=groupIdPrefix.length,
月份=编号(cellval.split('-')[1]),//输入格式为“Y-m-d”
名称=[],数据,i,l,项;
//测试opts.rowId是否以opts.gid+“ghead”和整数开头
//rowObject是数组,action是未定义的。
if(opts.rowId.substr(0,groupIdPrefixLength)==groupIdPrefix&&typeof动作==“未定义”){
//组头的自定义格式设置
//我们只是通过测试月数>9来模拟一些登录
//下一个代码片段无效,但可以使用
//如果没有那么多的组和本地数据
data=$(this.jqGrid(“getGridParam”,“data”);
对于(i=0,l=data.length;i9?(“”)+
'') : "") +
formattedDate+'('+names.join()+')格式
}
返回格式化日期;
}

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

谢谢您的回复。。。。如果没有你对Stackoverflow的所有回答,我的项目就不可能达到现在的水平。我正在处理这个示例,我正在以JSON格式从服务器加载数据……当我尝试访问网格数据以将其加载到data=$(this).jqGrid(“getGridParam”,“data”);它是空的……我似乎找不到关于这个的任何内容,但我必须假设this和jqGrid(“getRowData”)都是空的在网格生命周期的这一点上会变成空的吗?@MarkR:我很高兴看到我的旧答案也帮了你。关于你的最后一个问题。如果你使用基于服务器的数据而不使用
loadonce:true
,如果你不使用TreeGrid,那么本地
数据
参数将不会被填充。在这种情况下,你无法访问完整的数据服务器响应。
getRowData
仅在网格已填充且不在自定义格式化程序内时才有帮助。作为解决方法,您可以在处理前使用
回调将从服务器返回的
数据保存在外部作用域中定义的变量中。然后,您将能够按说明访问数据我认为我不能使用
loadonce:true
,因为我想使用分页之类的,我的理解是这样会被禁用…当然,如果不是这样的话,我会听从你的建议…我将通过你提到的方法访问数据。谢谢again@MarkR:不客气!对于纯服务器端数据,最简单的解决方案是在处理之前使用
来“捕获”服务器响应,或者您可以在服务器端准备所有需要的工作。您可以在服务器上进行分组,构造稍后将在分组文本中使用的详细字符串,并将信息放在服务器响应中的某个位置。例如,您可以使用
userdata
并从jqGrid的
userdata
parmeter获取信息。该方法将以同样的方式进行优化。我尝试了
userdata
为我的网格和自定义格式化程序传递数据的方法,但似乎我将复制传递到网格中的数据,所以我只是按照你的建议做了,在处理之前通过
填充了一个变量,并使它可以访问我的customformatter函数,然后解析出JSON。。。我有我的分组显示额外的数据,我想…希望他们将添加一个增强在未来,但现在工作得很好!再次感谢!