views:

91

answers:

2

When I have no rows returned, our jqGrid pager says Page 1 of NaN.

The JSON returned is:

{"page":"1","records":"0","total":"1"}

Why is NaN listed?


Update: We only seem to have this issue when we use loadonce:true.

Here's the source code:

  $("#list").jqGrid({
    url:'NoData.json',
    datatype: 'json',
    mtype: 'GET',
    colNames:['Product', 'Type'],
    colModel :[
      {name:'product', index:'product', width:80},
      {name:'type', index:'type', width:55, align:'right'},
    ],
    pager: '#pager',
    rowNum:20,
    viewrecords: true ,
    caption: 'Positions',
    height: '460',
    loadonce:true,          
    hidegrid: false         
  });

Update 2: What seems to work is the JSON below - is this right?

{"page":0,"records":0,"total":0,"rows":[]}
A: 

It's trying to reference the first page of a recordset with no records.

Andy Evans
Surely jqGrid can handle a case where there is no data returned? What are we doing wrong?
Marcus
+1  A: 

Something is wrong in the definition of your jqGrid. Look at the simple example of jqGrid filled with your JSON data. You will see "No records to view" ar other text from $.jgrid.defaults.emptyrecords defined in grid.locale-XX.js (grid.locale-en.js for example).

If you will continue to have problem you should append your question with the code of the jqGrid having the described problem.

Oleg
Took a closer look - see the updated post. Only seem to have this issue when `loadonce` is true
Marcus
I downloaded the example you mentioned - if I change loadonce to true then you can reproduce the issue.
Marcus
Oleg
@Marcus: I do took the time and posted http://www.trirand.com/blog/?page_id=393/bugs/nan-as-total-number-of-pages-for-jsonxml-data-with-0-rows/ which describes the found problems.
Oleg
Thanks Oleg. Is the workaround I posted in "Update 2" a valid workaround (if you don't want to modify the code)? Or is it better to do the code change?
Marcus
@Marcus: I agree, if you can change your code to produce data with `"rows":[]` it could be a good workaround.
Oleg