GWT SimplePager: Как обеспечить функциональность GoTo в пейджере? - PullRequest
2 голосов
/ 12 декабря 2011

Я использую GWT2.3. Мы разработали CustomPager, переопределив SimplePager.

Мы переопределяем метод 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, чтобы пользователь мог ввести номер страницы в textBox. (Функциональность Перейти на введенный номер страницы)

createText () возвращает строку, поэтому я не могу добавить пользователя textBox;) + Не могу предоставить css

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

1 Ответ

3 голосов
/ 12 декабря 2011

Это можно сделать двумя способами:

1.) Использование HTML-кода для создания текстового поля :

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

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

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

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

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

...