我在JSP页面和数据类型XML中使用JqGrid(1.8.22),但是pager在这里不起作用

时间:2013-09-23 13:23:20

标签: jqgrid

没有数据分页按钮是可点击的IMAGE 1
此处分页按钮不可点击IMAGE 2

  

如果数据是动态的,此处寻呼机无效。请让我知道   改变我必须做的,它只有在我们使用静态数据时才有效。

<head>
<script type="text/javascript">
jQuery().ready(function() {
jQuery("#list").jqGrid({
url : './ShowDummyData.do?',
datatype : 'XML',
mtype : 'GET',
loadonce : false,
colNames:['Inv No','Notes','DTL'],
colModel:[
{name:'invid',index:'invid', width:150},
{name:'note',index:'note', width:150, sortable:false},
{name:'dtl',index:'dtl', width:150, sortable:false}         
],                          
pager : jQuery('#pager'),
rowNum : 1,
rowList : [ 1, 2, 3 ],
rownumbers: true,
viewrecords : true,
gridview: true,
caption : 'My first grid'
}).navGrid('#pager',{edit:false,add:false,del:false});
});
</script>
</head>
<body>
<table id="list" class="scroll"></table>
<div id="pager" class="scroll" style="text-align: center;"></div>
</body>
  

这是servlet的代码

sb.append("<?xml version=\"1.0\" encoding=\"utf-8\"?>");
response.setContentType("text/xml;charset=utf-8");
sb.append("<rows>");
sb.append("<row id='3'>");
sb.append("<cell>1</cell>");
sb.append("<cell>777</cell>");
sb.append("<cell> We will do 3</cell>");
sb.append("</row>");
 sb.append("<row id='4'>");
sb.append("<cell>1</cell>");
sb.append("<cell>777</cell>");
sb.append("<cell> We will do 3</cell>");
sb.append("</row>");
sb.append("</rows>");
  

以xml格式返回数据

1 个答案:

答案 0 :(得分:0)

您使用loadonce: false(按照默认值的方式)。所以您的服务器代码(servlet)负责分页。例如,您使用rowNum: 1。这意味着您希望每页显示1行。创建网格期间的初始页面为1.因此jqGrid将以下附加参数发送到服务器:

page=1
rows=1 (get from rowNum: 1)

网址./ShowDummyData.do将附加./ShowDummyData.do?page=1&rows=1和其他一些其他参数(sidxsord_searchnd)。您的服务器代码应该读取请求的参数,它应该返回所请求的页面数据:第一页有一行。因此,服务器应首先对数据对应sidxsord参数进行排序,它应该将结果划分为页面,并且应该只返回一页

如果您希望该客户端代码(jqGrid本身)进行分页,则servlet应该像您当前那样返回所有数据,并且您应该使用loadonce: true选项。