2010-11-03 11 views
7

Questa domanda è stata posta qui. jqGrid column not aligned with column headersjqla colonna Grid non allineata alle intestazioni di colonna

Ma lo stile del colore del bordo destro non sembra funzionare per me.

Sto usando jqGrid 3.8 e IE 8

Questa è la mia messa a punto per jqGrid

shrinkToFit:true, 
colModel :[ 
    {name:'leid', index:'leid', width:70, label:'LEID'}, 
    {name:'cdr', index:'cdr', width:40, label:'CDR'}, 
    {name:'name', index:'name', width:160, label:'Name'}, 
    {name:'country', index:'country', width:98, label:'Country'}, 
    {name:'fc', index:'fc', width:50, label:'FC'}, 
    {name:'bslaMe', index:'bslaMe', width:65, label:'BSLA/ME'}, 
    {name:'business', index:'business', width:130, label:'Business'}, 
    {name:'amtFc', index:'amtFc', width:98, label:'Amt(FC)', align:'right', 
    formatter:'currency', formatoptions:{decimalSeparator:".", 
    thousandsSeparator: ",", decimalPlaces: 2, prefix: "", suffix:"", 
    defaultValue: '0'} }, 
    {name:'amtUsd', index:'amtUsd', width:98, label:'Amt(Cur)', align:'right', 
    formatter:'currency', formatoptions:{decimalSeparator:".", 
    thousandsSeparator: ",", decimalPlaces: 2, prefix: "", suffix:"", 
    defaultValue: '0'} }, 
    {name:'cashPoolHeader', index:'cashPoolHeader', width:120, 
    label:'Cash Pool Header'}, 
    {name:'cashPoolCDR', index:'cashPoolCDR', width:60, label:'CP CDR'}, 
    {name:'cashPoolName', index:'cashPoolName', width:160, label:'Cash Pool Name'} 
], 

Qualche idea?

+0

Mi scuso per la formattazione del codice ... – Sumit

risposta

6

ho avuto lo stesso problema, ho risolto il problema aggiungendo 4 linee di codice in gridComplete, queste 4 linee cambieranno lo stile di td 's di superficie contenuti [primi td fila' modifica stile s è sufficiente].

Questo è un problema in jqgid, che in realtà è l'impostazione dei td 's dentro l'<thead> ma questo stile non sta riflettendo in td' s di contenuto. Durante lo sviluppo di jqgrid, si presupponeva che l'intera larghezza delle colonne fosse effettuata modificando le larghezze di td s di una riga, ma sono state modificate solo per <thead>, che è il problema persistente qui.

larghezze di set di colonne nel colModel:

colModel: [ 
    { 
     name: 'Email', 
     index: 'Email', 
     editable: true, 
     edittype: 'custom', 
     width: 220, 
     editoptions: { 
      custom_element: function(value, options) { 
       return EmailAddressCustomElement(value, options); 
      }, 
      custom_value: function(elem) { 
       var inputs = $("input", $(elem)[0]); 
       return inputs[0].value; 
      } 
     } 
    }, 
    { 
     name: 'LocationAndRole', 
     index: 'LocationAndRole', 
     editable: true, 
     align: "left", 
     edittype: "button", 
     width: 170, 
     editoptions: { 
      value: 'Edit Location And Role', 
      dataEvents: [{ 
       type: 'click', 
       fn: function(e) { 
        ShowUsersLocationAndRoles(e); 
       } 
      }] 
     } 
    } 
] 

aggiungere il codice qui sotto nel caso gridComplete:

gridComplete: function() { 
    var objRows = $("#list_accounts tr"); 
    var objHeader = $("#list_accounts .jqgfirstrow td"); 

    if (objRows.length > 1) { 
     var objFirstRowColumns = $(objRows[1]).children("td"); 
     for (i = 0; i < objFirstRowColumns.length; i++) { 
      $(objFirstRowColumns[i]).css("width", $(objHeader[i]).css("width")); 
     } 
    } 
} 

spero che il codice di cui sopra vi aiuterà a risolvere il problema.

+1

Grazie , questo problema mi ha ucciso da un po 'di tempo. Sorpreso che questo problema abbia più di 2 anni ... –

+0

Grazie @ Muktesh.I stavo rompendo la testa per risolvere questo problema.Grande soluzione. –

0

Vedere il mio old answer che descrive come modificare l'allineamento dell'intestazione di colonna.

E non è ciò che si vuole, allora si dovrebbe inviare una foto che mostra come griglia di guardare come e aggiungere nella tua domanda il codice completo di voi griglia compreso il codice HTML, informazioni sulla versione di jqGrid che si utilizza e il test dati. Quindi tutto ciò che serve per riprodurre il tuo problema.

0

Il codice di cui sopra non funzionava per me

ho cambiato un po ': Lavorare bene con 4.6.0

var objHeader = $("table[aria-labelledby=gbox_" + gridName+ "] tr[role=rowheader] th"); 

for (var i = 0; i < objHeader.length; i++) { 
    var col = $("table[id=" + gridName+ "] td[aria-describedby=" + objHeader[i].id + "]"); 
    var width= col.outerWidth(); 
    $(objHeader[i]).css("width", width); 
} 
Problemi correlati