ClickHandler を含む Anchor を ListGridRecord に追加する必要があります。Click to Anchor は関数を呼び出す必要があります (ListGrid にさらに行を追加します)。hrefでアンカーを書くことができます:
private void addAnchorToRecord(ListGridRecord rec) {
String img = "<img src='pict/Plus.png'/>";
Anchor myAnchor = new Anchor(img, true, "example.html");
String value = myAnchor.toString();
rec.setAttribute("versions", value);
}
しかし、このコード:
private void addAnchorToRecord(final ListGridRecord rec) {
String img = "<img src='pict/Plus.png'/>";
Anchor myAnchor = new Anchor(img, true);
myAnchor.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
addExtraRows(rec);
}
});
String value = myAnchor.toString();
rec.setAttribute("versions", value);
}
動作しません。画像は表示されますが、クリックしても何も起こりません。2番目のケースでは
value = "<a href="javascript:;" class="gwt-Anchor"><img src="pict/Plus.png"></a>"
この場所では、clickHandler に関する情報が失われると思います。この状況で ClickHandler を正常に追加するにはどうすればよいですか?
編集
私はLinkItemを使用しました:
private void updateVersions(final ListGridRecord rec) {
LinkItem linkItem = new LinkItem("link");
linkItem.setTitle("LinkItem");
linkItem.setLinkTitle("Click Me");
linkItem.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
showPreviousVersions(rec);
}
});
rec.setAttribute("versions", linkItem);
}
その後、私のセルには「[object Object]」だけがありました
必要な機能: アイコンと clickHandler を持つ ListGridRecord に属性を設定します。