【问题标题】:jqGrid - Pagination not working properlyjqGrid - 分页无法正常工作
【发布时间】:2013-12-14 13:52:27
【问题描述】:

正如你在这张图片中看到的那样

我的数据库中有 13 条记录,但寻呼机说它只有 1 页(有 10 行),这是不正确的。

我的 .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});    
};

我的 .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);  
%>

【问题讨论】:

    标签: json jqgrid pagination pager


    【解决方案1】:

    jqGrid 的默认选项意味着您实现了服务器端分页。如果您想一次从服务器返回所有数据(如果您有 13 条记录,这将是一个不错的选择),您应该添加 loadonce: true 选项。

    此外,我建议您在 jqGrid 中添加 gridview: trueautoencode: trueheight: "auto" 选项。此外,您应该删除在选项navGrid 中使用的edit:truedel:falsesearch:truerefresh:true,因为您在错误的地方使用了它们。如果要指定选项,则应指定第二个参数的属性(代码中为 {})。

    【讨论】:

    • 我尝试添加 loadonce:true、gridview:true 并且我还将我的 navGrid 选项移到了 {} 内。现在没有任何选项(添加,编辑,删除)正在工作,看起来它不能罚款他们的网址......
    • @lucasdc:loadonce: true 的使用应该已经解决了你的问题。您在“看起来无法罚款他们的网址”下的意思是什么?如果您使用错误的 URL,则网格中不应显示任何数据。我解释您的问题文本,以便正确显示 first 页面,而您只有分页问题。所以请确认网格的第一页会正确显示。
    • 我的第一页显示正确。正如我在图像中显示的那样,我有 13 条记录(将来会更多,比如 10k+),第一页显示 10 条记录,但网格显示只有 1 页记录,但实际上应该有 2 页( 10 + 3)。箭头不可点击,但如果我选择显示 20 行,则其他 3 行(应该在第 2 页上)将显示在网格上。我的意思是“看起来找不到他们的网址”是我认为你向我展示的传递参数的方式(像这样):{edit:true, del:false, search:true} 不起作用跨度>
    • @lucasdc:您能否在问题的文本中附加来自服务器的 JSON 数据的准确响应?在这种情况下,我可以重现您的测试。 如果您将loadonce: true添加到jqGrid选项列表中,我相信问题应该得到解决。可能您将选项放在错误的位置?
    • @Bhaiya:如果您需要在网格中显示不多的项目(loadonce: true。例如,您可以使用来自 CDN 的最新 (4.13.2) 版本的免费 jqGrid(参见 the wiki article)或下载它。我在 reloadGrid 中实现了许多新功能和fromServer: true 的使用以及navGridreloadGridOptions: { fromServer: true } 选项的使用(参见the answer 的更新2 部分)
    猜你喜欢
    • 1970-01-01
    • 2018-06-05
    • 2014-09-21
    • 2013-08-22
    • 2012-09-25
    • 2016-07-29
    • 2017-11-27
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多