Sede Legale
via Sorrento 11, 00177 Roma (RM)
contact@evermind.it
Tel: +39 327.833.37.60

Sede Operativa
via Giulia 1/C, 89125 Reggio Calabria (RC)
contact@evermind.it
Tel: +39 0965.16.40.041

Back

jqGrid: visualizzazione testo quando la griglia è vuota

jqGrid è un fantastico plugin jQueryper la gestione delle griglie. Pur essendo completo, sicuramente migliorabile, non ha una gestione diretta del caso in cui non ci siano elementi da visualizzare. Esistono due strade alternative per ovviare a questo problema:

  1. Definire un DIV, o altro contenitore HTML, contenente il messaggio preposto, da visualizzare in corrispondenza dell’evento gridComplete;
  2. Utilizzare una combinazione della proprietà emptyDataText del colModel di jqGrid ed un handler associato all’evento gridComplete

Io preferisco la seconda soluzione, perchè consente di gestire la situazione di anomalìa direttamente dal plugin jqGrid. Di seguito un estratto del codice:
$('#grid').jqGrid({
... // some settings
gridComplete: function () {
if (grid.getGridParam('records') == 0)
DisplayEmptyText(true);
else
DisplayEmptyText(false);
},
emptyDataText:'There are no records. '
... // more settings
});

function DisplayEmptyText(display) {
var grid = $('#list2');

// get the empty text
var emptyText = grid.getGridParam('emptyDataText');

// find the grid's container
var container = grid.parents('.ui-jqgrid-view');

if (display) {
container.text();
// hide the column headers and the cells below
container.find('.ui-jqgrid-hdiv, .ui-jqgrid-bdiv').hide();

// insert the empty data text
container.find('.ui-jqgrid-titlebar').after('' + emptyText + '');

$("#box-lista-empty").show();
}
else {
$("#box-lista-empty").hide();
container.find('.ui-jqgrid-hdiv, .ui-jqgrid-bdiv').show(); // show the column headers
}
}

Francesco Biacca
Francesco Biacca
https://www.evermind.it/team/francesco-biacca/