Come unire le celle in jqGrid 4.0

Ho cercato di “unire” le celle in un jqGrid, cioè, voglio rendere le celle per le righe specifiche hanno un colspan = 2 (o più). Finora sono riuscito a far funzionare correttamente i bordi usando l’opzione cellattr nel modello di colonna con qualcosa del genere:

colModel = { name: "a", width=50, cellattr: function(rowId, tv, rawObject, cm, rdata) { if (rowId < 5) { return 'sytle="border-right:0px"'; } }, name: "b", width=50, cellattr: function(rowId, tv, rawObject, cm, rdata) { if (rowId < 5) { return 'sytle="border-left:0px"'; } } }; 

Questo rimuove solo il bordo per le celle che voglio unire (a & b fino alla riga 5). Ma se aggiungo del testo a una di queste caselle, text-align ovviamente non funzionerà correttamente e il testo verrà semplicemente troncato se è più grande di 50 pixel.

Potrei fare qualcosa di pazzo in cui faccio allineare il centro tagliando tutto il testo a metà e aggiungo ogni mezzo alla colonna “a” e “b” rispettivamente a destra e a sinistra-allineamento. Tuttavia, sembra che ci dovrebbe essere un modo migliore.

Trovo la tua domanda molto interessante, quindi fai +1 da me.

Mi sembra che l’uso di colspan=2 sia ciò di cui hai veramente bisogno. Per avere lo stesso numero di colonne nelle righe con colspan=2 suggerisco di hide il prossimo elemento

nella riga:

 { name:'a',index:'a', width:50, cellattr: function(rowId, tv, rawObject, cm, rdata) { if (Number(rowId) < 5) { return ' colspan=2' } } }, { name:'b',index:'b', width:50, cellattr: function(rowId, tv, rawObject, cm, rdata) { if (Number(rowId) < 5) { return ' style="display:none;"' } } } 

Ho testato l'implementazione solo poche volte, ma sembra funzionare:

inserisci la descrizione dell'immagine qui

La demo che puoi vedere dal vivo qui .

AGGIORNATO : Un'altra risposta mostra come può essere usato l'attributo rowspan in jqGrid.

Sembra che non sia supportato in questo momento. Dicono “prossimo futuro”.

http://www.trirand.net/forum/default.aspx?g=posts&t=1184