2013-06-04 37 views
4

使用GWT 2.5.1,SimplePager.java有這個方法:爲什麼GWT SimplePager next/last按鈕僅在範圍受限或行數不準確時才被禁用?

@Override 
protected void onRangeOrRowCountChanged() { 

    HasRows display = getDisplay(); 
    label.setText(createText()); 

    // Update the prev and first buttons. 
    setPrevPageButtonsDisabled(!hasPreviousPage()); 

    // Update the next and last buttons. 
    if (isRangeLimited() || !display.isRowCountExact()) { 
     setNextPageButtonsDisabled(!hasNextPage()); 
     setFastForwardDisabled(!hasNextPages(getFastForwardPages())); 
    } 
} 

爲什麼啓用/禁用只有當範圍是有限的,或者如果行計數不準確的下一個/最後一個按鈕?我有一個傳呼機設置範圍有限的假,我的異步數據提供程序指定行計數是確切的,當我更新行數。使用此設置,下一個/最後一個分頁按鈕將不會更新!

我只是使用這個錯誤,或者它是一個錯誤?

我工作圍繞這一問題通過繼承SimplePager讓我成塊在onRangeOrRowCountChanged()的底部:

@Override 
    protected void onRangeOrRowCountChanged() { 
     boolean rangeLimited = isRangeLimited(); 
     super.setRangeLimited(true); 
     super.onRangeOrRowCountChanged(); 
     super.setRangeLimited(rangeLimited); 
    } 
+0

關於爲什麼這是downvoted的意見,將不勝感激。我認爲這是一個有效且明確問到的問題。 – Jay

回答

4

AIUI,如果範圍沒有限制,你明確允許尋呼機超越可用數據並顯示空白頁面。

如果行計數不準確,則應啓用下一個按鈕,因爲hasNextPage將返回true(即使超出了已知 - 雖然不精確的行數,快進將被禁用)。無論範圍是否有限,這都可能適用,也可能不是bug。

+0

我的意圖是範圍是有限的(我不想讓傳呼機顯示空白頁)和行數是確切的(我確實知道確切的數字)。所以你認爲這是正常的使用?你的回答是「這可能是一個錯誤?」 – Jay

+0

如果你的意圖是範圍有限,那麼你爲什麼用'false'來配置你的尋呼機? –

+0

我不是唯一一個SimplePager很奇怪的人。請參閱https://groups.google.com/forum/?fromgroups#!searchin/google-web-toolkit/last$20page$20too$20big/google-web-toolkit/RedwgreWKB0/_3Q66CkXENUJ ...「我注意到如果你調用setRangeLimited(false),你會得到你期望的行爲,但前進按鈕不會變灰。「 – Jay

相關問題