8

Please - need syntax for setting variables from jqGrid getRowData property

Looping thru rows - just need to pull the ID and Phrase column values into variables

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>";
  }
},

Was able to get ID easy enough with getDataIDs :-)

Need help with getting specific column values for pid and vPhrase for i

Cheers

Jeff Miller
  • 2,405
  • 1
  • 26
  • 41
Charlez
  • 871
  • 3
  • 11
  • 17
  • What are you doing with this array once you have it? Depending on your requirements `rowattr:` might be more efficient. – Mark Mar 08 '13 at 14:46

2 Answers2

21

Try this:

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

Please Note: If your goal is to add a link to cell which calls a javascript method you can achieve this by using formatter like given below, formatter should be added to colModel like you add other column properties like name,index,width,align etc, so you can avoid the iteration over row data

formatter: function(cellvalue, options, rowObject) {

    return  "<a href='#' onclick='openForm(" 
            + rowObject.ID + ", " 
            + rowObject.Phrase 
            + ")'>View</a>"; 
      }
Kris
  • 1,882
  • 1
  • 20
  • 23
  • 1
    A note: this works, but only if the value you need is in a grid column. You can hide the column if you don't want to display the value, but it has to be there. – Mike Cole Nov 18 '13 at 22:11
4

This is what I use when I want to get Data by RowID for specific 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);
}
Bhushan
  • 6,151
  • 13
  • 58
  • 91