免费的 jqGrid 4.8.0 - 将 'of X' 隐藏在显示 'page Y ox X' 的寻呼栏中
Free jqGrid 4.8.0 - Hidding the 'of X' in the pager bar where it says 'page Y ox X'
在继续 中,我正在寻找一种方法来删除属于传呼机 'page Y of X' 的 "of X" 部分。
所以如果我在流模式下工作,我只知道前面还有一页,不知道有多少实际页面在前面等待,我宁愿不显示 "of X"这不是真的,而是只显示当前页码。
是否有内置方法可以只显示当前页面和下一个箭头?
谢谢,
您在网格中看到的所有文本都可以本地化。相应的模板来自 grid.locale-XX.js
个文件。例如,您可以打开 grid.locale-en.js
文件并搜索 page
。您会在 defaults
部分 ($.jgrid.defaults
) 中找到 属性 pgtext: "Page {0} of {1}"
。 defaults
设置与 jqGrid 的选项相同,但由于特定于语言的文本,已在语言环境文件中移动 grid.locale-XX.js
。
因此您只需将选项 pgtext: "Page {0}"
添加到 jqGrid。免费的 jqGrid 4.8 中有一个小问题。它仅从本地文件获取所有选项(甚至 defaults
部分)。我 fixed 当前代码中的行为 GitHub。所以你应该刷新你使用的来源。或者,您可以通过
方式设置选项
$.jgrid.defaults.pgtext = "Page {0}";
The demo 使用来自 GitHub (https://rawgit.com/free-jqgrid/jqGrid
) 的最后一个源,因此它可以只使用 pgtext: "Page {0}"
。它显示如下图所示的寻呼机
更有趣的是我们在 的评论中与您讨论的场景。您希望首先 return 来自网格的数据,然后通过单独的 Ajax 调用 稍后 获取有关记录总数和页数的信息。原因是:您需要从 SELECT 得到 COUNT(*)
,这会产生非常大的结果。因为获取一页比获取 COUNT(*)
更快。在您希望首先隐藏记录总数并稍后在 Ajax 对 COUNT(*)
的调用完成后显示该值的场景中。使用该场景,隐藏 寻呼机的 "of X'" 部分会在开始时出现,并在 Ajax 请求 [=25= 之后显示它] 就完事了。
我建议使用以下选项
pgtext: "Page {0}<span class='pagerOf' style='display:none'> of {1}</span>"
在场景中。该选项将在寻呼机中包含所需的信息,但这些信息最初会隐藏。寻呼机的 {1}
部分将替换为具有 id 的 <span>
,它将使用 sp_1_
前缀基于寻呼机 id 构建。它允许您随时显示或隐藏寻呼机的 "of ..." 部分。
The next demo 演示了该方法。它有两个按钮,允许 show/hide 寻呼机的 "of ..." 部分 动态 。您可以在您发出的 Ajax 请求中使用相同的代码。最后一个demo使用了下面的代码
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();
});
在继续
所以如果我在流模式下工作,我只知道前面还有一页,不知道有多少实际页面在前面等待,我宁愿不显示 "of X"这不是真的,而是只显示当前页码。
是否有内置方法可以只显示当前页面和下一个箭头?
谢谢,
您在网格中看到的所有文本都可以本地化。相应的模板来自 grid.locale-XX.js
个文件。例如,您可以打开 grid.locale-en.js
文件并搜索 page
。您会在 defaults
部分 ($.jgrid.defaults
) 中找到 属性 pgtext: "Page {0} of {1}"
。 defaults
设置与 jqGrid 的选项相同,但由于特定于语言的文本,已在语言环境文件中移动 grid.locale-XX.js
。
因此您只需将选项 pgtext: "Page {0}"
添加到 jqGrid。免费的 jqGrid 4.8 中有一个小问题。它仅从本地文件获取所有选项(甚至 defaults
部分)。我 fixed 当前代码中的行为 GitHub。所以你应该刷新你使用的来源。或者,您可以通过
$.jgrid.defaults.pgtext = "Page {0}";
The demo 使用来自 GitHub (https://rawgit.com/free-jqgrid/jqGrid
) 的最后一个源,因此它可以只使用 pgtext: "Page {0}"
。它显示如下图所示的寻呼机
更有趣的是我们在 COUNT(*)
,这会产生非常大的结果。因为获取一页比获取 COUNT(*)
更快。在您希望首先隐藏记录总数并稍后在 Ajax 对 COUNT(*)
的调用完成后显示该值的场景中。使用该场景,隐藏 寻呼机的 "of X'" 部分会在开始时出现,并在 Ajax 请求 [=25= 之后显示它] 就完事了。
我建议使用以下选项
pgtext: "Page {0}<span class='pagerOf' style='display:none'> of {1}</span>"
在场景中。该选项将在寻呼机中包含所需的信息,但这些信息最初会隐藏。寻呼机的 {1}
部分将替换为具有 id 的 <span>
,它将使用 sp_1_
前缀基于寻呼机 id 构建。它允许您随时显示或隐藏寻呼机的 "of ..." 部分。
The next demo 演示了该方法。它有两个按钮,允许 show/hide 寻呼机的 "of ..." 部分 动态 。您可以在您发出的 Ajax 请求中使用相同的代码。最后一个demo使用了下面的代码
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();
});