jqgrid分组不能正常工作

时间:2017-12-23 00:49:23

标签: jquery json jqgrid

我有这个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);
                }
            });

问题是网格以这种方式出现:

Grouping result

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

为网格提供信息的JSON格式正确,所以它与此处显示无关,除非它非常大。

1 个答案:

答案 0 :(得分:0)

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

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