2013-09-16 2 views
0

Я хочу настроить заголовок столбца таблицы ячеек. Я должен включить поддержку сортировки и фильтрации. Я хочу иметь изображения для обоих действий. Когда пользователь нажимает на изображение сортировки, он переключается (на основе сортировки по возрастанию/убыванию), и таблица сортируется на основе щелчка. В настоящее время я делаю это с некоторыми беспорядочными манипуляциями с HTML, в onBrowserEvent моей пользовательской ячейки заголовка. Может ли кто-нибудь сказать мне, как я могу использовать ToggleButton от GWT здесь?GWT добавление виджета в заголовок столбца

Спасибо.

ответ

0

Вы не можете использовать виджет GWT в таблице ячеек. Но вы можете использовать пользовательскую ячейку для заголовка.

public class ButtonHeader extends Header<String> { 
    private String text; 

    /** 
    * Construct a new TextHeader. 
    * 
    * @param text the header text as a String 
    */ 
    public ButtonHeader(String text) { 
    super(new ButtonCell()); 
    this.text = text; 
    setUpdater(new ValueUpdater<String>() { 
     @Override 
     public void update(String value) { 
     //When the button is press 
     } 
    }); 
    } 


    @Override 
    public String getValue() { 
    return text; 
    } 
} 

Вы можете изменить это для использования другой соты для вашего использования.

0

Для (не такой) полной документации по пользовательским ячейкам check this link.

Вы должны переопределить onBrowserEvent(), даже если это неуклюже, поскольку вы не можете использовать виджет GWT в ячейке, но вы можете сделать его. Тем не менее, он потеряет все возможности обработки событий.

(from this post) Виджеты не привязаны к DOM. Они существуют, чтобы манипулировать в памяти, а затем извлекать их HTML и вставлять в DOM. Поэтому события из виджетов не обрабатываются. Обработаны события сот.

Таким образом, вы можете просто использовать widget.getElement.getInnerHTML(), чтобы визуализировать виджет в своем заголовке (кнопка переключения или что-то еще). Несмотря на то, что этот вариант под рукой, я бы посоветовал использовать ваши собственные SafeHtmlTemplates вместо использования getInnerHTML().

Смежные вопросы