jqGrid - Pagination not working properly
jqgrid, json, pager, pagination
Solution
Default options of jqGrid means that you implements server side paging. If you want to returns all data at once from the server (which would be good choice if you have 13 records) you should just add `loadonce: true` option.
Additionally I would recommend you to add `gridview: true`, `autoencode: true` and `height: "auto"` option to your jqGrid. Moreover you should remove `edit:true`, `del:false`, `search:true` and `refresh:true` which you use inside of options `navGrid` because you use there on the wrong place. If you want to specify the options you should specify properties of the second parameter (which is `{}` in your code).
Problem
As you can see in this image I have 13 records on my DB but the pager says it has only 1 page (with 10 rows), which is not correct. Relevant part of the code from my .js ``` function cria(){ $("#grid").jqGrid({ datatype: 'json', url: 'json.jsp', jsonReader: {repeatitems: false}, pager: '#paginado', rowNum: 10, rowList: [10,20,30], emptyrecords: "Não há registros.", recordtext: "Registros {0} - {1} de {2}", pgtext: "Página {0} de {1}", colNames:['Código','Descrição'], colModel:[ {name:'codigo', width:80, sorttype:"int", sortable: true, editable: false}, {name:'descricao', width:120, sortable: true, editable: true, editrules:{required:true}} ], viewrecords: true, editurl:"dadosGrid.jsp?edit=true", caption: "Grupos", hiddengrid: true }); $("#grid").jqGrid('navGrid','#paginado',{}, {edit:true,url:"Adm?aux=edit",closeAfterEdit:true,reloadAfterSubmit:true}, {add:true,url:"Adm?aux=add",closeAfterAdd:true,reloadAfterSubmit:true}, {del:false}, {search:true}, {refresh:true}); }; ``` Relevant part of the code from my .jsp ``` String json = "["; for (UserAux user : users ){ json += "{"; json += "\"codigo\":\""+user.getCod()+"\","; json += "\"descricao\":\""+user.getDescricao()+"\","; json += "},"; } json = json.substring(0,json.length()-1); json += "]"; out.println(json); %> ```