2

继续这个很好的答案,我正在寻找一种方法来删除作为寻呼机“X 页 Y”的一部分的“X”部分。

因此,如果我在流媒体模式下工作,我只知道前面还有一页,而不知道有多少真实页面在前面等待,我宁愿不显示“X”,这不是真的,但只显示当前页码。

有没有一种内置方式可以只显示当前页面和下一个箭头?

谢谢,

4

1 回答 1

2

您在网格中看到的所有文本都可以本地化。相应的模板来自grid.locale-XX.js文件。例如,您可以打开grid.locale-en.js文件并搜索page. 您将在pgtext: "Page {0} of {1}"( defaults) 部分中找到该属性$.jgrid.defaults。这些defaults设置与 jqGrid 的选项相同,但grid.locale-XX.js由于特定于语言的文本而在语言环境文件中移动。

因此,您只需将选项添加pgtext: "Page {0}"到 jqGrid。免费的 jqGrid 4.8 中有一个小问题。defaults它仅从本地文件中获取所有选项(甚至是部分)。我修复了 GitHub 上当前代码中的行为。所以你应该刷新你使用的来源。或者,您可以设置选项的方式

$.jgrid.defaults.pgtext = "Page {0}";

该演示使用来自 GitHub ( https://rawgit.com/free-jqgrid/jqGrid) 的最后一个源,因此它可以只使用pgtext: "Page {0}". 它显示如下图所示的寻呼机

在此处输入图像描述

更有趣的是我们在对您之前的问题的评论中与您讨论的场景。您希望首先从网格返回数据,然后通过单独的 Ajax 调用获取有关记录总数和页面总数的信息。原因是:您需要COUNT(*)从产生非常大的结果的 SELECT 中获取。因为获取一页比获取更快COUNT(*)。在您希望首先隐藏记录总数并稍后在 Ajax 调用COUNT(*)完成后显示该值的场景中。使用该场景,将导致在开始时隐藏寻呼机的“X”部分,并在 Ajax 请求COUNT(*)完成后显示它。

我建议使用以下选项

pgtext: "Page {0}<span class='pagerOf' style='display:none'> of {1}</span>"

在场景中。该选项将在寻呼机中包含所需的信息,但这些信息最初会被隐藏。{1}寻呼机的部分将被替换为<span>具有 id 的 id,该 id 将基于使用sp_1_前缀的寻呼机 id 构建。它将允许您随时显示或隐藏寻呼机的“...”部分。

下一个演示演示了该方法。它有两个按钮,可以动态显示/隐藏寻呼机的“...”部分。您可以在您发出的 Ajax 请求中使用相同的代码。最后一个演示使用以下代码

var getPagerOf = function (grid) {
    var p = grid.jqGrid("getGridParam"), sel = [];
    if (p.pager) {
        sel.push("#sp_1_" + p.pager.substr(1));
    }
    if (p.toppager) {
        sel.push("#sp_1_" + p.toppager.substr(1));
    }
    return $(sel.join()).closest(".pagerOf");
}
$("#showOfPager").button().click(function () {
    getPagerOf($grid).show();
});
$("#hideOfPager").button().click(function () {
    getPagerOf($grid).hide();
});
于 2015-06-02T17:35:59.437 回答