jqgrid 分组无法正常工作

Posted

技术标签:

【中文标题】jqgrid 分组无法正常工作【英文标题】:jqgrid grouping not working as it should 【发布时间】:2018-06-05 12:59:18 【问题描述】:

我有这个 jqgrid 定义:

var columnas = [
                     label: 'Localidad', name: 'InventarioLocalidad', width: 120 ,
                     label: 'Empresa', name: 'InventarioEmpresa', width: 120 ,
                     label: 'Tipo', name: 'InventarioTipo', width: 120 ,
                     label: 'Número Serie', name: 'InventarioNumSerie', width: 120 ,
                     label: 'Marca', name: 'InventarioMarca', width: 120 ,
                     label: 'Modelo', name: 'InventarioModelo', width: 120 ,
                     label: 'En Uso', name: 'InventarioEnUso', width: 80, formatter: booleanFmatter ,
                     label: 'RUT', name: 'InventarioRutUsuario', width: 100 ,
                     label: 'Usuario', name: 'InventarioNombreUsuario', width: 120 ,
                     label: 'Status', name: 'Inventariostatus', width: 80 ,
                     label: 'Fecha', name: 'InventarioFecha', width: 100, formatter: 'date', formatoptions:  srcformat: "ISO8601Long", newformat: "d/m/Y"  ,
                     label: 'Hora', name: 'InventarioHora', width: 80, formatter: 'date', formatoptions:  srcformat: "ISO8601Long", newformat: "d/m/Y"  ,
                     label: 'Fecha Carga', name: 'InventarioFechaCarga', width: 130, formatter: 'date', formatoptions:  srcformat: "ISO8601Long", newformat: "d/m/Y"  
            ];

var grid = $('#gridReporteConAnalisis');
            grid.jqGrid(
                url: urlGrid,
                mtype: "GET",
                datatype: "json",
                colModel: columnas,
                viewrecords: true,
                shrinkToFit: false,
                autowidth: false,
                multiselect: false,
                rowNum: 20,
                rowList: [10, 20, 30],
                gridview: true,
                pager: pagerName,
                sortname: "InventarioTipo",
                sortorder: "asc",
                grouping: true,
                groupingView: 
                    groupField: ['InventarioTipo'],
                    groupDataSorted: true,
                    groupColumnShow: [false],
                    groupOrder: ['asc']
                ,
                loadError: function (xhr, status, error) 
                    checkUserSession(xhr);
                ,
                beforeRequest: function () 
                    var $PANEL = $('#pnlGridConAnalisis')
                    $FOOTER = $('footer');

                    grid.jqGrid('setGridWidth', $PANEL.width());

                    // 125 = otros altos, como paddings y la fila de paginación
                    grid.jqGrid('setGridHeight', $FOOTER.offset().top - $PANEL.offset().top - 125);
                
            );

问题是网格是这样出现的:

如您所见,组以不同的子节点出现多次。这很好,但是,为什么分组不会将同一组下的所有元素分组?

馈送网格的 JSON 格式良好,因此在此处显示无关紧要,而且它非常大。

【问题讨论】:

我认为您需要确保一个组中的所有行都在 JSON 数据中。在 SQL 查询中使用 ORDER BY inventariotipo 【参考方案1】:

您需要修复创建 JSON 的服务器端代码,以便将所有相关行放在一起。 jqGrid 不会对数据重新排序,它只是在此列发生变化时启动一个新组。

在 SQL 查询中使用ORDER BY inventariotipo 应该可以解决问题。

【讨论】:

它确实有道理......但在你提到它之后:-)

以上是关于jqgrid 分组无法正常工作的主要内容,如果未能解决你的问题,请参考以下文章

jQGrid TreeGrid 的内联导航 addRow 方法无法正常工作

使用自定义日期格式后,jQGrid DateFilter无法正常工作

jqGrid 不显示数据,但显示分页和列名/工作正常

从Map的Java流中,通过键对它们进行分组,并找到最大值无法正常工作

使用 Group By 选择无法正常工作

Ajax 无法正常工作。 PHP 无法在 SQL 中插入数据