Search code examples
jqueryasp.netjqgrid

JQGrid groupView


Is it possible to group rows in one level by two columns? I have two values that determines grouping. Problem is that i have to show only specific grouping headers. Here is my code:

$("#grid").jqGrid({

                    data: response.d.Data.rows,

                    colModel: [
                    { name: 'RowNumber', hidden: true },
                    { name: 'ID_WorkPlace', hidden: false },
                    { name: 'WorkPlaceName', hidden: false, width: 100,} , //label: '<%= ((BPMISBasePage)Page).ResourceManager.GetString("asp.pages_limits_projectsearch_aspx_projectlist_code")%>', search: true },
                    { name: 'WorkPlaceCode', hidden: false, width: 70 } , // label: '<%= ((BPMISBasePage)Page).ResourceManager.GetString("asp.pages_limits_projectsearch_aspx_projectlist_name")%>', search: true },
                    { name: 'WorkPlaceCodeName', hidden: false, width: 70 } ,
                    { name: 'ID_ParentWorkplace', hidden: false, width: 70 } ,
                    { name: 'ParentWorkPlaceCode', hidden: false, width: 70 } ,
                    { name: 'ParentWorkPlaceCodeName', hidden: false, width: 70 } ,
                    { name: 'ParentWorkPlaceName', hidden: false, width: 70 } ,

                    { name: 'NumberOfEmployeesStayedLeft', hidden: false, width: 70 } ,
                    { name: 'ParameterPlain', hidden: false, width: 70 } ,

                    { name: 'BaseSalaryValue', hidden: false, width: 70 } ,
                    { name: 'ID_EmploymentDynamic', hidden: false, width: 70 } ,
                    { name: 'RSBaseSalary', hidden: false, width: 70 } ,
                    { name: 'TotalCoefficient', hidden: false, width: 70 } ,
                    { name: 'NumberOfMonths', hidden: false, width: 70 } ,
                    { name: 'YearlyNetSalaryByEmployee', hidden: false, width: 70 } ,
                   ],

                    gridview: true,
                    //rowNum: 19,
                    //pager: '#pager',
                    //multiselect: true,
                    viewrecords: true,
                    loadonce: true,
                    autowidth: true,
                    rowattr: function (rd) {
                        if (rd.UnRead) {
                            return { "class": "jqfoot" };
                        }
                    },
                    sortname: 'Code',
                    sortorder: 'asc',
                    headertitles: true,
                    multiSort: true,
                    ondblClickRow: function (rowid, iRow, iCol) {
                        if (rowid) {
                            odDoubleClick(rowid);
                        }
                    },
                    //altRows: true,
                    //altclass: 'jqGridAltRows',
                    searching: {
                        defaultSearch: 'cn'
                    },
                    grouping: true,
                    groupingView: {
                        groupField: ["ParentWorkPlaceCode", "RowNumber", "WorkPlaceCodeName"],
                        groupColumnShow: [true, false, false],
                        groupText: [
                            "<b>{0}</b>",
                            "<b>{0}</b>", //How to hide this?
                            "<b>{0}</b>" //I have to show only this!!!
                        ],
                        groupOrder: ["asc", "asc", "asc"],
                        groupSummary: [true, false, false],
                        groupSummaryPos: ['header', 'header', 'header'],
                        groupCollapse: false
                    }
                });

And also here is the current screenshot. enter image description here What I want is not to show header for 'RowNumber' in grouping. Is it possible?


Solution

  • I suggest you to reorganize your data to return one combined field from the two "RowNumber" and "WorkPlaceCodeName" like by example "RowNumber"+separator+ "WorkPlaceCodeName" group by that combined field and use formatDisplayField in groupingView to display "WorkPlaceCodeName".