[英]How to add Anchor with clickHandler to ListGridRecord in GWT
我需要將帶有clickHandler的Anchor添加到ListGridRecord。 單擊以錨定應調用該函數(向ListGrid添加更多行)。 我可以用href編寫Anchor:
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);
}
不起作用。 我看到圖像,但是單擊后什么都沒有發生。 在第二種情況下
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]”
我需要的功能:將屬性設置為ListGridRecord,它具有圖標和clickHandler。
如果僅在ListGridRecord中添加一個按鈕,然后向該按鈕添加一個clickhandler,則將更加容易。 必須這樣完成:
配置ListGrid時:
setShowRecordComponents (true );
setShowRecordComponentsByCell(true );
設定欄位時
...
ListGridField btnField= new ListGridField("btnFieldName", " ");
...
然后像這樣重寫createRecordComponent:
@Override
protected Canvas createRecordComponent(final ListGridRecord record, final Integer colNum){
if(getFieldName(colNum).equalsIgnoreCase(("btnFieldName"))){
IButton btn= new IButton("");
//configure the button
btn.addClickHandler(new ClickHandler() {
@Override
public void onClick(ClickEvent event) {
//your logic
}
});
return btn;
}
return super.createRecordComponent(record, colNum);
}
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.