GWT将小部件添加到列标题

时间:2013-09-16 04:58:13

标签: gwt

我想自定义单元格表的列标题。我必须包括对排序和过滤的支持。我想为这两个动作都有图像。当用户单击排序图像时,它将切换(基于升序/降序排序),并根据单击的图标对表进行排序。我现在正在使用一些凌乱的HTML操作,在我的自定义标题单元格的onBrowserEvent中执行此操作。有人能告诉我如何在这里使用GWT的ToggleButton吗?

感谢。

2 个答案:

答案 0 :(得分:0)

您不能在Cell Table中使用GWT Widget。 但是,您可以使用自定义单元格作为标题。

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;
  }
}

您可以更改此选项以使用其他Cell供您使用。

答案 1 :(得分:0)

关于自定义单元格check this link的(不那么)完整文档。

你必须覆盖onBrowserEvent(),即使它很笨拙,因为你不能在单元格中使用GWT小部件但是你可以渲染它。然而,它将失去所有它的事件处理能力。

from this post)小部件永远不会附加到DOM。它们存在于内存中,然后将其HTML提取并推送到DOM中。因此,不处理来自窗口小部件的事件。处理单元事件。

因此,您可以使用widget.getElement.getInnerHTML()在标题中呈现所需的小部件(切换按钮或其他任何内容)。尽管手头有这个选项,我的建议是使用您自己的SafeHtmlTemplates而不是getInnerHTML()