2011-01-21 112 views
6

我有一個gwt建議框,它執行RPC調用以從服務器獲取一些數據並顯示它。在某些情況下,有多達2000個結果。雖然這可以在Firefox中運行JavaScript時正常工作,但它會將窗口凍結5秒,並且有時會導致腳本無法響應警告。向gwt添加更多按鈕Suggest Box

我想要做的就是顯示20個結果,並有一個更多的按鈕,可以追加下20個按鈕,而無需每次點擊時都回撥到服務器。我對此很新,我試圖擴展promptBox和覆蓋showSuggestions(),但它是受保護的,所以我不能。

任何建議/想法會很好。

乾杯, 羅布

+0

您應該查看http://code.google.com/p/advanced-suggest-select-box/您需要的所有內容 – 2011-07-21 13:43:29

回答

4

this question關於如何擴展GWT的SuggestBox指針 - 基本上,你要提供自己的SuggestOracle(它用於取回建議),也許你的文本框(見我前面提到的問題的鏈接),最有可能的自定義SuggestBox.SuggestionDisplay。這三個通過構造函數傳遞給SuggestBox。請參閱現有的默認實現(MultiWordSuggestOracle,SuggestBox.DefaultSuggestionDisplay)以獲得一些想法:)

+0

感謝伊戈爾,我在最後實現了一個自定義的SuggestBox.SuggestionDisplay,並將它傳遞給Suggestion構造函數。發揮魅力。意味着我可以限制循環的次數,以便firefox不再嘗試! :) – Rob 2011-01-24 16:49:03

0

如果你想改變SuggestBox的源代碼見this 你應該在你的src根目錄中創建com.google.gwt.user.client.ui packeges和複製有SuggestBox.java。當您使用SuggestBox時,它會調用您的src中的SuggestBox。
檢查this也可以是有用的太

0

首先解決想到的是,寫自己的小部件,從SuggestBox延伸,第二個解決方案可能改變suggestbox的默認CSS參數

.gwt-SuggestBox { 
} 
.gwt-SuggestBoxPopup { 
} 
.gwt-SuggestBoxPopup .item { 
} 
.gwt-SuggestBoxPopup .item-selected { 
} 
.gwt-SuggestBoxPopup .suggestPopupContent { 
}