【问题标题】:GWT: How can I add anchor cell in my CellTableGWT:如何在 CellTable 中添加锚单元
【发布时间】:2012-03-05 00:53:39
【问题描述】:

知道如何在我的CellTable 中添加锚点吗?我在这里发现了同样的问题,但找不到可行的解决方案。

有人可以提供一些在 CellTable 列中添加锚点的工作代码吗?

【问题讨论】:

  • 这个问题的答案是 actioncell,button cell 但不是锚点,我的意思是我的目标是在我的单元格中得到一些带有下划线的东西,当我们将鼠标光标悬停在 HREF 时,它不是可以添加一些超链接,当我们单击它时,它会给我们一些窗口警报
  • 我的回答是为了指出不可能在 CellTable(绘制单元格)中绘制 Anchor(小部件)。可以用单元格绘制“a href”标签,请参见第二段。如果您对如何实现它有任何疑问,这似乎正是您想要的,请提出问题,发布一些不太有效的示例代码,我很乐意尝试并提供帮助。

标签: gwt gwt-celltable


【解决方案1】:

小部件Anchor 不能添加到CellTable 中,因为所有单元格小部件只知道如何绘制Cell<C> 实例。这让他们可以比使用Widgets 更快/更有效地绘制和重绘内容。

一个 html 锚元素,<a href='someUrl'>text</a> 可以很容易地绘制为Cell。子类 AbstractCell 并定义渲染方法来绘制这个 html,与您想要重定向到的任何文本或链接交错。然后,在构建CellTable 时,将此Cell 实例传递给Column 构造函数。

查看 GWT 中现有的一些 Cells 以了解您还可以如何绘制事物(例如 ButtonCell.render 制作按钮而不是 a),或如何处理事件(AnchorCell 了解如何以编程方式处理点击,而不是让重定向到新页面,或者TextInputCell 以获取更复杂的示例)。

【讨论】:

    【解决方案2】:

    我喜欢使用SafeHtmlCell 将Widget 的HTML 渲染成CellTable

    Column<MyTableType, SafeHtml> anchorColumn = new Column<MyTableType, SafeHtml>(new SafeHtmlCell()) {
        @Override
        public SafeHtml getValue(MyTableType object) {
            Anchor anchor = new Anchor(...);
            return SafeHtmlUtils.fromTrustedString(anchor.toString());
        }
    };
    

    请注意,Widget.toString(); 返回 Widget 的 HTML sn-p,以便在调试器中查看。它不会包含任何处理程序或侦听器。它只是 HTML,但在 CellTable 中呈现简单的东西就足够了。

    【讨论】:

      猜你喜欢
      • 2011-06-16
      • 1970-01-01
      • 2012-07-01
      • 1970-01-01
      • 2023-03-23
      • 2012-02-21
      • 2011-06-09
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多