jqGrid gridComplete:- getRowData - get row cell value from array
Asked Answered
O

2

9

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

Ophthalmitis answered 8/3, 2013 at 1:40 Comment(1)
What are you doing with this array once you have it? Depending on your requirements rowattr: might be more efficient.Doorn
A
23

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>"; 
      }
Arette answered 8/3, 2013 at 2:14 Comment(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.Valenza
O
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);
}
Oreste answered 8/3, 2013 at 6:2 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.