【问题标题】:Paging does not work in JqGrid分页在 JqGrid 中不起作用
【发布时间】:2012-11-22 05:55:30
【问题描述】:

我在我的项目中使用 jQGrid 最新版本。以下是我配置的完整配置。

jQuery("#list").jqGrid( {
        url : 'Link.do?method=findAllBrand',
        mtype : 'GET',
        height : 350,
        datatype : "xml",
        colNames : [ 'Name' ],
        colModel : [ {
            name : 'name',
            index : 'name',
            width : 620
        } ],
        rowNum : 10,
        rowList : [ 10, 20, 30 ],
        sortname : 'id',
        sortorder : "desc",
        viewrecords : true,
        multiselect : true,
        imgpath : 'themes/base/images',
        caption : "Brand (s) Summary Grid",
        pager : #pager,
        cache : false,
        onSelectRow : function(id) {

        }
    });

我正在从服务器获取以下 xml 格式的数据:

<?xml version="1.0" encoding="UTF-8" standalone="yes"?><rows><page>1</page><total>4</total><records>75</records><row id="BRD00005"><cell>AEG</cell></row><row id="BRD00010"><cell>ARC</cell></row><row id="BRD00006"><cell>Aga</cell></row><row id="BRD00007"><cell>Allenzi </cell></row><row id="BRD00008"><cell>Amana</cell></row><row id="BRD00009"><cell>Andi</cell></row><row id="BRD00011"><cell>Arda</cell></row><row id="BRD00012"><cell>Ariston</cell></row><row id="BRD00013"><cell>Asko</cell></row><row id="BRD00014"><cell>Baumatic</cell></row><row id="BRD00015"><cell>Bendix</cell></row><row id="BRD00003"><cell>Blanco</cell></row><row id="BRD00001"><cell>Bosch</cell></row><row id="BRD00004"><cell>Chef</cell></row><row id="BRD00016"><cell>Damani</cell></row><row id="BRD00017"><cell>Davell</cell></row><row id="BRD00018"><cell>Delonghi</cell></row><row id="BRD00019"><cell>Dishlex</cell></row><row id="BRD00020"><cell>Electrolux</cell></row><row id="BRD00021"><cell>Emilia</cell></row><row id="BRD00022"><cell>Euro</cell></row><row id="BRD00023"><cell>Eurolec</cell></row><row id="BRD00024"><cell>Euromaid</cell></row><row id="BRD00002"><cell>F&amp;P</cell></row><row id="BRD00027"><cell>FP</cell></row><row id="BRD00025"><cell>Fagor</cell></row><row id="BRD00026"><cell>Fisher And Paykel</cell></row><row id="BRD00028"><cell>Franke</cell></row><row id="BRD00030"><cell>GE</cell></row><row id="BRD00034"><cell>GVA</cell></row><row id="BRD00029"><cell>Gaggenau</cell></row><row id="BRD00031"><cell>Glem </cell></row><row id="BRD00032"><cell>Glem Gas</cell></row><row id="BRD00033"><cell>Glemgas</cell></row><row id="BRD00035"><cell>Haier</cell></row><row id="BRD00036"><cell>Hisense </cell></row><row id="BRD00037"><cell>Hitachi</cell></row><row id="BRD00038"><cell>Hoover</cell></row><row id="BRD00039"><cell>Hotpoint</cell></row><row id="BRD00040"><cell>IAG</cell></row><row id="BRD00041"><cell>Ilve</cell></row><row id="BRD00042"><cell>Indesit</cell></row><row id="BRD00043"><cell>Jenn Air</cell></row><row id="BRD00044"><cell>Kelvinator </cell></row><row id="BRD00045"><cell>Kleenmaid</cell></row><row id="BRD00047"><cell>LG</cell></row><row id="BRD00046"><cell>La Germania</cell></row><row id="BRD00048"><cell>Liebherr</cell></row><row id="BRD00049"><cell>Linea</cell></row><row id="BRD00050"><cell>Lofra</cell></row><row id="BRD00051"><cell>Maytag</cell></row><row id="BRD00052"><cell>Midea</cell></row><row id="BRD00053"><cell>Miele</cell></row><row id="BRD00054"><cell>NEC</cell></row><row id="BRD00055"><cell>Neff</cell></row><row id="BRD00056"><cell>Nobel</cell></row><row id="BRD00057"><cell>Omega</cell></row><row id="BRD00058"><cell>Onix</cell></row><row id="BRD00059"><cell>Panasonic </cell></row><row id="BRD00060"><cell>Robinhood</cell></row><row id="BRD00061"><cell>Sagi</cell></row><row id="BRD00062"><cell>Samsung</cell></row><row id="BRD00063"><cell>Seimen </cell></row><row id="BRD00064"><cell>Sharp</cell></row><row id="BRD00065"><cell>Simpson</cell></row><row id="BRD00066"><cell>Smeg</cell></row><row id="BRD00067"><cell>St George</cell></row><row id="BRD00068"><cell>Technika</cell></row><row id="BRD00069"><cell>Techno</cell></row><row id="BRD00070"><cell>Technogas</cell></row><row id="BRD00071"><cell>Teka</cell></row><row id="BRD00072"><cell>Thor</cell></row><row id="BRD00073"><cell>Vintec</cell></row><row id="BRD00074"><cell>Westinghouse</cell></row><row id="BRD00075"><cell>Whirlpool</cell></row></rows>

我已按照用户 Oleg 在另一篇文章中的建议修改了寻呼机参数。但寻呼机仍无法按预期工作。最初它只显示记录的 10 条数据,当我点击下一步时它什么也不做。

what did i do wrong

谢谢你 米希尔·帕雷赫

【问题讨论】:

    标签: ajax jquery jqgrid


    【解决方案1】:

    pager 选项的值必须被引用:pager : "#pager"。你使用datatype: "xml" 没有 loadonce: true。如果您的服务器 (url : 'Link.do?method=findAllBrand') 负责分页和排序。如果用户点击下一页新请求到服务器,对应参数page=2

    通常,服务器应返回与pagerows 参数对应的项目数。 XML 响应包含更多的项目。我想服务器返回 所有项目 独立于请求的页面。在这种情况下,您应该包括loadonce: true。在这种情况下,客户端代码(jqGrid 的 JavaScript 代码)将为您进行分页和排序。如果您使用loadonce: true 选项,您可以删除该部分

    <page>1</page><total>4</total><records>75</records>
    

    来自服务器返回的 XML 数据。

    此外,我建议您尽可能考虑更改为使用 JSON 而不是 XML。在这种情况下,您可以减少诸如

    之类的项目的表示
    <rows>
    <row id="BRD00022"><cell>Euro</cell></row>
    <row id="BRD00002"><cell>F&amp;P</cell></row>
    <row id="BRD00026"><cell>Fisher And Paykel</cell></row>
    </rows>
    

    [["Euro","BRD00022"],["F&P","BRD00002"],["Fisher And Paykel","BRD00026"]]
    

    因此您可以减少传输数据的大小。

    此外,就像我在the comment 中写给您的上一个问题一样,您应该将sortname : 'id' 替换为sortname : 'name',因为您的网格没有名称为"id" 的列。 sortorder : "desc" 选项可能应该被删除。

    您应该删除 deprecated option imgpath 并删除 jqGrid 中也不存在的选项 cache。相反,我强烈建议您添加gridview: true 选项和autoencode: true。如果您使用autoencode: true,则不需要使用 HTML 编码(在服务器端将F&amp;amp;P 转换为F&amp;amp;P)。

    已更新The demo 展示了网格的外观:

    我在网格中加入了工具栏过滤器和高级搜索功能,以展示如果使用loadonce: true 来实现这些功能是多么容易。

    【讨论】:

    • 先生。 Oleg 如果我删除了 imgPath 那我应该用什么来代替它??
    • 这是一个完美的答案,看起来Oleg先生对jQGrid有绝对的了解。我在 jqGrid 论坛上也看到了这个用户的很多答案。再次感谢 Oleg 先生,请不要删除 jQGrid 页面一段时间我想研究它。谢谢
    • @Mihir:不客气! jqGrid 根本不知道imgpath,就像任何其他幻想选项foo: "bar" 一样忽略它。在非常不同的 jqGrid 旧版本中,一个不使用 jQuery UI CSS 并且需要该选项。关于 the demo 或我为旧答案创建的任何其他旧演示:我没有从 Web 服务器中删除任何内容。我认为该网址不会被破坏很多次。
    • 感谢@Oleg,看起来你是专业顾问,而你来自德国。实际上我是服务器端开发人员,我必须做这个客户端工作,因为我们的 UI 开发人员突然离开了工作,我知道一些 jQuery,所以无论如何我都接受了这个任务,我很幸运找到了你。将来我邀请你回答所有与 jQuery 相关的问题。
    猜你喜欢
    • 2018-04-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2020-03-08
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多