2015-06-02 29 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