he modificado el código de Oleg para poder mostrar la agrupación en la primera fila, básicamente creé una tercera fila ficticia y simplemente eliminé el texto en la primera fila.
var x = 0;
insertColumnGroupHeader = function (mygrid, mergeSettingList) {
var i, cmi, skip = 0, $tr, colHeader, iCol, $th,
colModel = mygrid[0].p.colModel,
ths = mygrid[0].grid.headers,
gview = mygrid.closest("div.ui-jqgrid-view"),
thead = gview.find("table.ui-jqgrid-htable>thead");
$tr = $("<tr>");
var currCaption = '';
var currColumnName = '';
var currSpan = 0;
var currSkip = 0;
tr = "<tr>";
for (i = 0; i < colModel.length; i++) {
$th = $(ths[i].el);
cmi = colModel[i];
if (currSkip === 0) {
currColumnName = '';
for (j = 0; j < mergeSettingList.length; j++) {
if (mergeSettingList[j].col == cmi.name) {
currCaption = mergeSettingList[j].caption;
currColumnName = mergeSettingList[j].col;
currSpan = mergeSettingList[j].span;
currWidth = mergeSettingList[j].width;
break;
}
}
}
if (cmi.name !== currColumnName) {
if (currSkip === 0) {
$th.attr("rowspan", "2");
} else {
// Skip part of group
denySelectionOnDoubleClick($th);
currSkip--;
}
} else {
denySelectionOnDoubleClick($th);
tr += '<th class="ui-state-default ui-th-ltr" colspan="' + currSpan + '" role="columnheader">' + currCaption + '</th>';
currSkip = currSpan - 1;
}
}
tr += "</tr>";
mygrid.closest("div.ui-jqgrid-view").find("table.ui-jqgrid-htable > thead").append(tr);
$th = $(ths[0].el);
tr = "<tr>";
var html = $th.parent().html();
tr += html;
tr += "</tr>";
mygrid.closest("div.ui-jqgrid-view").find("table.ui-jqgrid-htable > thead").append(tr);
for (i = 0; i < colModel.length; i++) {
$th = $(ths[i].el);
cmi = colModel[i];
$th.empty();
$th.css({"padding-top": "0px", height: "0px", border: "0px"});
}
}
Ejemplo de llamada.
var mergeParam = [
{caption: ' ', col: 'ActionKey', span: 3},
{caption: 'Planned', col: 'PlannedStartColKey', span: 5},
{caption: 'Actual', col: 'ActualStartColKey', span: 12}
];
insertColumnGroupHeader2($(GridNames.Grid), mergeParam);
¡Eres un semental! – Jonathan
@Jonathan: En la próxima vez planeo examinar ordenando y cambiando el tamaño del código de jqGrid más exactamente y trataré de arreglar el problema con la primera fila de los encabezados. Espero que incluya clases ("th.ui-th-column" en lugar de "th") en las líneas como [this] (https://github.com/tonytomov/jqGrid/blob/v4.0.0/js/grid .base.js # L1839) resolverá el problema. – Oleg
@Jonathan: Encontré algunos lugares en el código fuente jqGrid que hicieron los problemas. Mira [aquí] (http://www.ok-soft-gmbh.com/jqGrid/SimpleLocalGridHeaders3.htm). Aún no es la versión final, pero muchas cosas ya están funcionando en Internet Explorer y Firefox (aún no en Chrome). – Oleg