2011-12-12 1 views
2

Я использую GWT2.3. Мы разработали CustomPager, переопределив SimplePager.GWT SimplePager: Как обеспечить функциональность GoTo в пейджере?

Мы переопределить метод CreateText() таким образом, что мы показываем строку, как «Страница 1 из 4», используя следующий код

public String createText() { 
     if(searchRecordCount%pageSizeForText == 0){ 
      totalPages = searchRecordCount/pageSizeForText; 
     }else{ 
      totalPages = (searchRecordCount/pageSizeForText) + 1; 
     } 
     NumberFormat formatter = NumberFormat.getFormat("#,###"); 
     return "Page "+formatter.format(this.getPage()+1) + " of " + formatter.format(totalPages); 
     } 

enter image description here

Теперь я хочу использовать TextBox для CurrentPage, так что пользователь может ввести номер страницы в текстовом поле. (Функциональность GoTo вошел PageNumber)

CreateText() возвращает строку, так что я не могу пользователем TextBox;) + не может обеспечить CSS

Как я могу это сделать? Есть ли способ решить эту проблему? Обходной путь, если любой или образец кода

ответ

3

Есть два способа добиться этого:

1.) Используйте HTML-код, чтобы создать TextBox:

В функции createText() вы можете создать текстовое поле вручную с помощью HTML-кода (лучше использовать SafeHTML templates для предотвращения XSS):

String textbox_str = "<input type='textbox' name='goto'>"; 

Однако вы должны написать код для обработки фактического события (т.е. ChangeEvent) и вызвать setPage() вашего SimplePager с использованием JSNI.

2.) Добавить TextBox виджет SimplePager и переопределить конструктор:

SimplePager в основном композит, который добавляет ImageButtons в конструктор для прямых и обратных связей.
Вы можете расширить SimplePager, добавить TextBox и переопределить конструктор, чтобы добавить TextBox между обратными и обратными ImageButtons.

+0

Спасибо за ответ. В ответе # 1: Как n, где добавить SafeHtmlTemplates в createText()? – StackOverFlow

+0

Используйте '' SaveHTMLBuilder'' или '' SaveHTMLTemplate''. См. [Здесь] (http://code.google.com/webtoolkit/doc/latest/DevGuideSecuritySafeHtml.html#Creating_SafeHtml_Values) для более подробной информации. –

+0

метод createText(), вызываемый из onRangeOrRowCountChanged() и вывод createText(), заданный как string not html в SimplePager.java :(ie html_label.setText (createText()); Должен быть htmlLabel.setHtml ("... html или string. ") – StackOverFlow