2012-02-07 17 views
7

Mam jqGrid, gdzie wiersz jest edytowalny po kliknięciu (to znaczy "editRow" w "OnSelectRow" działa poprawnie). Ale moim wymaganiem jest "załadowanie siatki z WSZYSTKIMI RZĘDAMI W TRYBIE EDYCJI domyślnie (edycja Inline)", więc nie powinno być potrzeby klikania pojedynczych wierszy. Czy ktoś może rzucić trochę światła?jqGrid: Domyślnie wszystkie wiersze w "trybie edycji bezpośredniej"

Próbowałem poniższy kod, ale nie działał

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

Odpowiedz

14

Trzeba wyliczyć wszystkie rzędy siatki i nazywają editRow dla każdego wiersza. Kod może być jak poniżej

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); 
    } 
} 

lub następnego

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! jesteś jak oh! mój Boże!!! zrobiłeś mój dzień. Dzięki za milion ... – CodeMad

+1

@CodeMad: Nie ma za co! Cieszę się, że mogłem ci pomóc. – Oleg

+1

@Oleg Proponuję użyć funkcji 'hasClass' jQuery:' $ (row) .hasClass ('jqgrow'); 'zamiast pełnej i niewiarygodnej funkcji' inArray': '$ .inArray ('jqgrow', row.className .split (''))> = 0'. Nigdy nie możesz poznać rozmiaru białej przestrzeni ('' ''). –

Powiązane problemy