2015-06-02 30 views
2

继续this great answer,我正在寻找一种方法来删除“X”的部分是寻呼机'X'页面的一部分。因此,如果我在流模式下工作,我只知道前面还有一个页面,但不知道有多少实际页面在等待,我不希望显示“X的”,它是不是真的,而是只显示当前的页码。免费jqGrid 4.8.0 - 在页面栏中隐藏'X的'它说'页面Y牛X'

有没有内置的方法,我只能显示当前页面加上下一个箭头?

谢谢,

回答

2

您在网格中看到的所有文本都可以本地化。相应的模板来自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部分)。 I fixed GitHub上当前代码的行为。所以你应该刷新你使用的来源。或者,你可以在路上

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

The demo设置选项使用从GitHub(https://rawgit.com/free-jqgrid/jqGrid)的最后一个来源,所以它可以只使用pgtext: "Page {0}"。它显示的寻呼机像下面的图片

enter image description here

更有趣的是,我们在评论与你讨论到your previous question场景。您希望首先从网格中返回数据,并通过单独的Ajax调用获取有关记录总数和页面后面的信息。原因是:你需要从SELECT获得COUNT(*),这会产生非常大的结果。因为得到COUNT(*)可以获得更快的页面。在这种情况下,您希望首先隐藏总记录数,并在完成对COUNT(*)的Ajax调用后显示值。使用这种情况下,将隐藏开始处的寻呼机的“X”部分,并在COUNT(*)的Ajax请求完成后稍后显示。

我会建议使用下列选项

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

在方案中。该选项将在寻呼机中具有所需的信息,但最初隐藏的信息将是隐藏。该寻呼机的{1}部分将被替换为<span>,该ID将使用sp_1_前缀基于寻呼机ID建立。它将允许您随时显示或隐藏寻呼机的“...”部分。

The next demo演示了该方法。它有两个按钮,它们允许动态地显示/隐藏寻呼机的“...”部分。您可以在您制作的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(); 
}); 
+0

Thanks Oleg,Great answer!如果我想根据网格ID来控制它?我在同一页面上有2个网格,其中我仍然希望保持默认状态。 – Tal

+0

对不起,刚才看到你的评论是关于“修复”的。 – Tal

+0

@Tal:是的,您应该使用GitHub的免费jqGrid的最新源代码,以便能够覆盖区域设置文件'grid.locale-XX.js'中'$ .jgrid.defaults'部分的设置。 – Oleg