我想自定义我的单元格表的列标题。我必须包括对排序和过滤的支持。我想为这两个动作提供图像。当用户单击排序图像时,它将切换(基于升序/降序排序)并且表格根据单击的图标排序。我目前在我的自定义标题单元格的 onBrowserEvent 中使用一些凌乱的 HTML 操作来执行此操作。有人可以告诉我如何在这里使用 GWT 的 ToggleButton 吗?
谢谢。
我想自定义我的单元格表的列标题。我必须包括对排序和过滤的支持。我想为这两个动作提供图像。当用户单击排序图像时,它将切换(基于升序/降序排序)并且表格根据单击的图标排序。我目前在我的自定义标题单元格的 onBrowserEvent 中使用一些凌乱的 HTML 操作来执行此操作。有人可以告诉我如何在这里使用 GWT 的 ToggleButton 吗?
谢谢。
您不能在单元格表中使用 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 供您使用。
有关自定义单元格的(不那么)完整文档,请查看此链接。
你必须重写 onBrowserEvent(),即使它很笨拙,因为你不能在单元格中使用 GWT 小部件,但你可以渲染它。然而,它将失去所有的事件处理能力。
(来自这篇文章)小部件永远不会附加到 DOM。它们的存在是为了在内存中进行操作,然后将它们的 HTML 提取并推送到 DOM 中。因此,不处理来自小部件的事件。单元格事件被处理。
因此,您可以只使用widget.getElement.getInnerHTML()
在标题中呈现您想要的小部件(切换按钮或其他任何东西)。尽管手头有这个选项,但我的建议是使用您自己的 SafeHtmlTemplates 而不是使用getInnerHTML()
.