How to get a cell value in JQGrid?
Asked Answered
R

3

16

How to get a cell value in JQGrid?

If I use the following syntax –

var ret = jQuery("#MyGrid").jqGrid('getRowData', id);
ret = ret.ProductId;

it returns the following HTML.

'input class="editable" name=" ProductId " id="0_ ProductId " style="width: 98%;" type="text"'

I actually need the value of the cell.

Thanks. Dev

Ramachandra answered 4/4, 2010 at 5:55 Comment(1)
possible duplicate of How to get a jqGrid cell valueCoset
A
26

If you only need the value of a cell that has already been saved, you can get it with this

$('#myTable').jqGrid('getCell',row_id,'column_name');
Armes answered 22/3, 2011 at 5:4 Comment(1)
be careful with the above solution - From the docs - "Do not use this method when you are editing the row or cell. This will return the cell content and not the actual value of the input element". In other words if you have a formatter applied this will return something like <h3>Cell Value Here</h3> jqGrid DocsCarlock
W
4

If you try to get the value of a row while it is being edited, you will retrieve markup (as in your example), instead of the actual value. To quote the jqGrid Documentation for getRowData:

Do not use this method when you editing the row or cell. This will return the cell content and not the actual value of the input element

The best way around this is to save your row data before calling getRowData, although alternatively if that is not an option you will have to parse the markup yourself. Which actually is not that hard to do in jQuery, but is still a pain.

Woodcutter answered 4/4, 2010 at 13:21 Comment(4)
Code for what, exactly? Please see the documentation for saveRow and getRowData for examples of those methods. If you need to parse out the raw HTML contents of getRowData, you can use jQuery just like you would handle a regular HTML document. If you are going down this road I recommend using FireBug to understand the format of the raw HTML. Unfortunately I do not have a code example handy because I was able to refactor my code to prevent these kinds of situations. But if you paste the HTML I might be able to help you out...Woodcutter
That's great but how to get the value then?Alitta
@CsabaToth - Use getRowData or getCell and save your data before calling them.Woodcutter
@JustinEthier "before calling them" - you mean before edit?Alitta
L
0

You have to follow steps :

Read all dataIDs from grid:

var dataIDs = jQuery("#MY_GRID").getDataIDs();

You can iterate on grid based on ID list. Then you will get row using dataID. When your entire row get done then you can get the cell value.

Here is the sample working code

for(i = 0; i < dataIDs.length; i++)
{
var rowData = jQuery("#MY_GRID").jqGrid ('getRowData', dataIDs[i]);

console.log(rowData);
var COLL_1_VALUE = $('#MY_GRID').jqGrid('getCell', dataIDs[i], 'COLL_1');
var COLL_2_VALUE = $('#MY_GRID').jqGrid('getCell', dataIDs[i], 'COLL_2');

console.log(COLL_1_VALUE);
console.log(COLL_2_VALUE);
}
Lotetgaronne answered 27/5, 2020 at 13:11 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.