我试图在celltable中添加一个超链接,然后单击该链接我想调用一个方法.
使用下面的代码我正确地在我的单元格中获得了一个超链接但我无法通过单击链接调用方法,当我单击链接它将我带到上一页.
任何解决方案
Hyperlink link = new Hyperlink("Delete","");
Column<EmployerJobs, Hyperlink> linkColumn =
new Column<EmployerJobs, Hyperlink>(new HyperLinkCell()) {
@Override
public Hyperlink getValue(EmployerJobs list) {
link.addClickHandler(new ClickHandler() {
public void onClick(ClickEvent event) {
deleteJobs(list);
}
});
return link;
}
});
Run Code Online (Sandbox Code Playgroud)
您可以使用ClickableTextCell,ButtonCell或ActionCell代替HyperlinkCell.
ClickableTextCell:
Column<EmployerJobs, String> linkColumn =
new Column<EmployerJobs, String>(new ClickableTextCell()) {
@Override
public String getValue(EmployerJobs object) {
return TEXT_TO_DISPLAY;
}
},'linkheadertext');
linkColumn.setFieldUpdater(new FieldUpdater<EmployerJobs, String>() {
@Override
public void update(int index, EmployerJobs object, String value) {
deleteJobs(object);
}
});
Run Code Online (Sandbox Code Playgroud)
ButtonCell:
Column<EmployerJobs, String> buttonColumn =
new Column<EmployerJobs, String>(new ButtonCell()) {
@Override
public String getValue(EmployerJobs object) {
return TEXT_TO_DISPLAY;
}
},'linkheadertext');
buttonColumn.setFieldUpdater(new FieldUpdater<EmployerJobs, String>() {
@Override
public void update(int index, EmployerJobs object, String value) {
deleteJobs(object);
}
});
Run Code Online (Sandbox Code Playgroud)
ActionCell:
Column<EmployerJobs, EmployerJobs> actionColumn =
new Column<EmployerJobs, EmployerJobs>(new ActionCell<EmployerJobs>("Click Me",
new ActionCell.Delegate<EmployerJobs>() {
@Override
public void execute(EmployerJobs jobs) {
deleteJobs(jobs);
}
})
{
@Override
public EmployerJobs getValue(EmployerJobs object) {
return object;
}
},'linkheadertext');
Run Code Online (Sandbox Code Playgroud)
查看CellSample 展示了解更多信息.