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インライン化されているため an を使用します。

ValueChangeHandler2 つ目については、クラスを拡張して呼び出すことにより、履歴変更イベ​​ントを「リッスン」する必要があり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 に答える
1

を使用しAnchorます。出力は<a>タグがない<div> <span>、その周りにあるだけですが、必要な場合<span>は HTML パネルで追加できます。

履歴がアクセスできる URL を設定するに#は、先頭に a を付けます。何かのようなもの

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

これで、myAnchor をクリックすると、onValueChange にトークン「article/whatever」が渡されます。不幸な副作用は、URL がhttp://example.com/#article/whateverのようになることですが、それが GWT だけで History オブジェクトにトークンを取得する唯一の方法です。

于 2010-11-23T04:00:55.197 に答える
0

リンクに ClickHandler のみが必要で、履歴サポートが必要ない場合は、デフォルトであるタグに基づくアンカーウィジェットを使用できます。<a>display: inline

于 2010-11-22T16:19:47.990 に答える