0

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

谢谢。

4

2 回答 2

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

您可以更改此设置以使用其他 Cell 供您使用。

于 2013-09-16T09:39:36.437 回答
0

有关自定义单元格的(不那么)完整文档,请查看此链接

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

来自这篇文章)小部件永远不会附加到 DOM。它们的存在是为了在内存中进行操作,然后将它们的 HTML 提取并推送到 DOM 中。因此,不处理来自小部件的事件。单元格事件被处理。

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

于 2013-09-16T11:53:38.713 回答