0

我需要在 GWT 中管理一个超链接对象。我需要的是:

1 - 将其添加到跨度中(如 InlineLabel)

我试过Hyperlink affitta_3_span_1=new Hyperlink(result.get(i)[0], "");了,但它创造了这样的东西:

<div class="affitta_3_span_1">
    <a href="#">t1</a>
</div>

事实上我需要这个:

<span class="affitta_3_span_1">
    <a href="#">t1</a>
</span>

2 - 管理超链接历史令牌

我把我的内部链接放在这样的地方,Hyperlink affitta_3_span_1=new Hyperlink(result.get(i)[1], "article/"+result.get(i)[0])但是当他们调用 onValueChange() 函数时,我不知道如何在令牌上获取参数。我该怎么做?

干杯

4

3 回答 3

1

使用Anchor. 输出只是一个<a>没有<div> <span>围绕它的标签,但如果您需要一个<span>,您可以使用 HTML 面板添加它。

要设置历史可以访问的 URL,只需#在开头放一个。就像是

myAnchor.setText(result.get(i)[1]);
myAnchor.setUrl("#article/"+result.get(i)[0]);

现在,当您单击 myAnchor 时,onValueChange 将传递令牌“article/whatever”。不幸的副作用是您的网址看起来像http://example.com/#article/whatever,但这是仅使用 GWT 将令牌获取到 History 对象的唯一方法。

于 2010-11-23T04:00:55.197 回答
1

对于第一个问题,使用 anAnchor因为它是内联的。

ValueChangeHandler对于第二个,您需要通过扩展和调用History.addValueChangeHandler(this);您的课程来“收听”历史更改事件。例如,

class MyClass implements ValueChangeHandler<String> {
  public MyClass {
     ...
     History.addValueChangeHandler(this);
  }   

  @Override
  public void onValueChange(ValueChangeEvent<String> event) {
    String token = event.getValue();
    if (token.equals("foo")) {
      // go to one page
    } else if token.equals("bar")) {
      // go to another page
    }
  }
}
于 2010-11-24T19:14:40.980 回答
0

如果您只需要链接上的 ClickHandler 而没有历史支持,则可以使用Anchor小部件,该小部件基于默认<a>具有的标签。display: inline

于 2010-11-22T16:19:47.990 回答