2013-03-08 3 views
6

proszę - potrzeba składnia ustawiania zmiennych z jqGrid getRowData własnościjqGrid gridComplete: - getRowData - uzyskać wartość komórki wiersza z tablicy

pętli thru rzędach - wystarczy pociągnąć wartości kolumny identyfikatora i wyrażenie w zmienne

gridComplete: function() { 
    var allRowsInGrid = $('#list').jqGrid('getRowData'); 
    for (i = 0; i < allRowsInGrid.length; i++) { 
    pid = allRowsInGrid[i].ID; 
    vPhrase = allRowsInGrid[i].Phrase; 
    vHref = "<a href='#' onclick='openForm(" + pid + ", " + vPhrase + ")'>View</a>"; 
    } 
}, 

był w stanie uzyskać identyfikator dość łatwe z getDataIDs :-)

Potrzebujesz pomocy z coraz specyfi Wartości c kolumn dla PID i vPhrase bom

Cheers

+0

Co robisz z tą tablicą, gdy już ją masz? W zależności od twoich wymagań 'rowattr:' może być bardziej efektywny. – Mark

Odpowiedz

14

Spróbuj tego:

var ids = jQuery("#list").jqGrid('getDataIDs'); 
for (var i = 0; i < ids.length; i++) 
{ 
    var rowId = ids[i]; 
    var rowData = jQuery('#list').jqGrid ('getRowData', rowId); 

    console.log(rowData.Phrase); 
    console.log(rowId); 
} 

Uwaga: Jeśli twoim celem jest, aby dodać link do komórki, która wywołuje javascript sposób można to osiągnąć za pomocą formatter jak podano poniżej, formater należy dodać do colModel jak dodać inne właściwości kolumny takie jak nazwa, indeks, szerokość, wyrównanie itp, dzięki czemu można uniknąć iteracji nad danymi rzędu

formatter: function(cellvalue, options, rowObject) { 

    return "<a href='#' onclick='openForm(" 
      + rowObject.ID + ", " 
      + rowObject.Phrase 
      + ")'>View</a>"; 
     } 
+0

Uwaga: działa, ale tylko wtedy, gdy potrzebna jest wartość w kolumnie siatki. Możesz ukryć kolumnę, jeśli nie chcesz wyświetlać wartości, ale musi tam być. –

4

To jest to, czego używam, gdy chcę uzyskać dane przez RowID dla konkretnego Cell.

var selRow = jQuery("#list10").jqGrid('getGridParam','selarrrow'); //get selected rows 
for(var i=0;i<selRow.length;i++) //iterate through array of selected rows 
{ 
    var ret = jQuery("#list10").jqGrid('getRowData',selRow[i]); //get the selected row 
    name = ret.NAME; //get the data from selected row by column name 
    add = ret.ADDRESS; 
    cno = ret.CONTACTNUMBER 
    alert(selRow[i] +' : ' + name +' : ' + add +' : ' + cno); 
}