dina osama
dina osama

Reputation: 117

loop through colModels names in jqGrid

guys i am using jqGrid .. and i want to loop through colModels names to get the row data .. here is my code

$(document).ready(function() {
  $("#jqGrid").jqGrid({
    url: 'data.json',
    datatype: "json",
    colModel: [
      { label: 'ID', name: 'ProductID', width: 45, key: true, hidden:true  },
      { label: 'Category Name', name: 'CategoryName', width: 75 },
      { label: 'Product Name', name: 'ProductName', width: 90 },
      { label: 'Country', name: 'Country', width: 100 },
      { label: 'Price', name: 'Price', width: 80, sorttype: 'integer' },
      // sorttype is used only if the data is loaded locally or loadonce is set to true
      { label: 'Quantity', name: 'Quantity', width: 80, sorttype: 'number' }               
    ],
    loadonce: true,
    viewrecords: true,
    width: 780,
    height: 200,
    rowNum: 20,
    rowList: [20, 30, 50],
    rownumbers: true,
    rownumWidth: 25,
    multiselect: true,
    pager: "#jqGridPager"
  });
});

function getSelectedRows() {
  var grid = $("#jqGrid"),
    rowData;
  var rowKey = grid.getGridParam("selrow");

  if (!rowKey)
    alert("No rows are selected");
  else {
    var selectedIDs = grid.getGridParam("selarrrow");
    var result = "";
    for (var i = 0; i < selectedIDs.length; i++) {
      rowData = grid.getLocalRow(selectedIDs[i]);

      result += rowData.ProductID + ", ";
      result += rowData.CategoryName + ", ";
      result += rowData.ProductName + ", ";
      result += rowData.Country + ", ";
      result += rowData.Price + ", ";
      result += rowData.Quantity + ", ";
    }

    alert(result);
  }
}

so i dont want this ..

result += rowData.ProductID+", " ;
result += rowData.CategoryName+", " ;
result += rowData.ProductName+", " ;
result += rowData.Country+", " ;
result += rowData.Price+", " ;
result += rowData.Quantity+", " ;

i want to loop through colModels instead .. any help ?? thanks in advance

Upvotes: 1

Views: 624

Answers (1)

Rajshekar Reddy
Rajshekar Reddy

Reputation: 18987

Loop through your Object and access values by key

Your rowData is a javascript object. You can fetch each value by looping its keys.

This will work for you

for (var i = 0; i < selectedIDs.length; i++) {
 rowData = grid.getLocalRow(selectedIDs[i]);

 for (var item in rowData ) {              //loop the object for each key
    result += rowData[ item ] + ', ';      // access the data of that key
 }        
}

Upvotes: 1

Related Questions