2012-02-07 15 views
7

Ho un jqGrid in cui una riga è modificabile al clic (ad esempio "editRow" all'interno di "OnSelectRow" funziona correttamente). Ma il mio requisito è di "caricare la griglia con TUTTA LA RIGA IN MODALITA 'EDIT per impostazione predefinita (modifica in linea)", quindi non ci dovrebbe essere alcuna necessità per me di fare clic su singole righe. Qualcuno può accendere qualche luce?jqGrid: tutte le righe in "modalità di modifica in linea" per impostazione predefinita

Ho provato il codice sotto ma poco lavoro

var data_val = myGrid.getRowData(); 
for (var i=0;i<data_val.length;i++) 
{ 
myGrid.editRow(data_val[i], true); 
} 

risposta

14

Bisogna enumerare tutte le righe della griglia e chiamare editRow per ogni riga. Il codice può essere come il seguente

loadComplete: function() { 
    var $this = $(this), ids = $this.jqGrid('getDataIDs'), i, l = ids.length; 
    for (i = 0; i < l; i++) { 
     $this.jqGrid('editRow', ids[i], true); 
    } 
} 

o il seguente

loadComplete: function() { 
    var $this = $(this), rows = this.rows, l = rows.length, i, row; 
    for (i = 0; i < l; i++) { 
     row = rows[i]; 
     if ($.inArray('jqgrow', row.className.split(' ')) >= 0) { 
      $this.jqGrid('editRow', row.id, true); 
     } 
    } 
} 
+0

Wow !!! Oleg! sei come oh! mio Dio!!! hai fatto la mia giornata Grazie mille ... – CodeMad

+1

@CodeMad: siete i benvenuti! Sono contento di poterti aiutare. – Oleg

+1

@Oleg Vorrei suggerire di utilizzare la funzione 'hasClass' di jQuery:' $ (row) .hasClass ('jqgrow'); 'invece della funzione' inArray' dettagliata e inaffidabile: '$ .inArray ('jqgrow', row.className .split (''))> = 0'. Non puoi mai sapere la dimensione dello spazio bianco (''''). –

Problemi correlati