仮想スクロール機能を追加して jqgrid テーブルを変更しようとしています。問題の原因がわかりません。一番下までスクロールしても、新しい行が表示されません。ここに私のjsコードがあります:
$(document).ready(function()
{
var page;
$("#visual").click(function()
{
$("#list").jqGrid(
{
url:'PrendiTutto',
datatype: "json",
height: 400,
width:600,
colNames:['id','model','cc','nation','prod'],
colModel:[
{name:'id', index:'id', jsonmap:"id", width:25},
{name:'model', index:'model', jsonmap:"model", width:50},
{name:'cc', index:'cc', jsonmap:"cc", width:25},
{name:'nation', index:'nation', jsonmap:"nation", width:50},
{name:'prod', index:'prod', jsonmap:"prod", width:50}
],
rowNum: 40,
rowTotal: 2000,
rowList: [20,30,50],
scrollrows: false,
hoverrows: false,
scroll: 10,
pager: false,
loadonce: true,
mtype: 'GET',
rownumbers: true,
rownumWidth: 40,
gridview: true,
pager: '#pager',
sortname: 'id',
viewrecords: true,
sortorder: "asc",
caption: "Elenco delle Moto",
jsonReader: {root: 'rows',page: 'page',total: 'total',records: 'records',repeatitems: false,id: 'id'},
});
$("#list").jqGrid('navGrid','#pager',{del:false,add:false,edit:false},{},{},{},{multipleSearch:true});
$("#visual").fadeOut();
$("#next").fadeIn();
$("#add").fadeIn();
$("#remove").fadeIn();
page = $("#list").getGridParam("page");
});
$("#next").click(function()
{
page = $("#list").getGridParam("page");
total = $("#list").getGridParam("lastpage");
if(total != page)
{
page ++;
$("#list").setGridParam({page:page}).trigger("reloadGrid");
$("#prev").fadeIn();
}
if((total) <= page)
$("#next").fadeOut();
});
$("#add").click(function()
{
row = $("#list").getGridParam("rowNum");
if(8 > row)
{
row++;
$("#list").setGridParam({rowNum:row}).trigger("reloadGrid");
}
});
$("#remove").click(function()
{
row = $("#list").getGridParam("rowNum");
if(row > 1)
{
row--;
$("#list").setGridParam({rowNum:row}).trigger("reloadGrid");
}
});
$("#prev").click(function()
{
page = $("#list").getGridParam("page");
if(page > 1)
{
page --;
$("#list").setGridParam({page:page}).trigger("reloadGrid");
$("#next").fadeIn();
}
if(page <= 1)
$("#prev").fadeOut();
});
});
そして、データベースからデータを読み取るサーブレット:
public class PrendiTutto extends HttpServlet
{
private static final long serialVersionUID = 1L;
public PrendiTutto()
{
super();
// TODO Auto-generated constructor stub
}
protected void doGet(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
response.setContentType("text/json");
MotoBeanManager moma = new MotoBeanManager();
Collection<MotoBean> m = moma.loadMotos();
PrintWriter out = response.getWriter();
int page = Integer.parseInt(request.getParameter("page"));
int row = Integer.parseInt(request.getParameter("rows"));
int j = 0, k = 0;
int pagine = m.size()/row;
if((m.size()%row) != 0)
pagine++;
String json = "{\"total\": \"" + pagine + "\",\"page\":\"" + page + "\",\"records\" :\"" + m.size() + "\", \"rows\":";
json += "[";
for(Iterator<MotoBean> i = m.iterator(); i.hasNext(); j++)
{
MotoBean moto = i.next();
if((j < page*row)&&(j >= (page - 1)*row))
{
k++;
json += "{";
json += "\"id\": \"" + moto.getId() + "\",";
json += "\"model\": \"" + moto.getModel() + "\",";
json += "\"cc\": \"" + moto.getCc() + "\",";
json += "\"nation\": \"" + moto.getNation() + "\",";
json += "\"prod\": \"" + moto.getProd() + "\"";
json += "}";
if((k != row)&&(i.hasNext()))
json += ",";
}
}
json += "]}";
out.print(json);
}
protected void doPost(HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException
{
doGet(request,response);
}
}
誰でも私を助けることができますか?