我正在尝试在单元格表中添加一个链接(我只希望该项目带有下划线并且鼠标符号在悬停时发生变化)
点击后我只想发出一个窗口警报。
为此,我尝试了这些选项:(但没有运气)
1)
final Hyperlink hyp = new Hyperlink("test", "test");
Column<EmployerJobs, Hyperlink> test = new Column<EmployerJobs, Hyperlink>(new HyperLinkCell())
{
@Override
public Hyperlink getValue(EmployerJobs object)
{
return hyp;
}
};
选项 1 的问题是,它带我进入导航页面“测试”,而我不想进入任何其他页面,我只想要一个窗口警报。
2)
Column<EmployerJobs, SafeHtml> test = new Column<EmployerJobs, SafeHtml>(new SafeHtmlCell())
{
@Override
public SafeHtml getValue(EmployerJobs object)
{
SafeHtmlBuilder sb = new SafeHtmlBuilder();
sb.appendEscaped("test");
return sb.toSafeHtml();
}
};
选项 2 的问题是我不知道这里到底要返回什么,而且它没有下划线。
3)最后我尝试使用复合单元在我的单元格表中添加 anchor (理想情况下我希望在一个单元格中添加三个不同的 anchor )
final Anchor anc = new Anchor();
ArrayList list = new ArrayList();
list.add(anc);
CompositeCell ancCell = new CompositeCell(list);
Column testColumn1 = new Column<EmployerJobs, Anchor>(ancCell) {
@Override
public Anchor getValue(EmployerJobs object) {
return anc;
}
};
选项 3 给出了一些异常(exception)。
如果您可以帮助我实现上述任何选项,我将不胜感激
谢谢
最佳答案
你这样做是完全错误的。您需要使用ActionCell对于这样的东西或创建你自己的细胞。示例代码:
ActionCell.Delegate<String> delegate = new ActionCell.Delegate<String>(){
public void execute(String value) { //this method will be executed as soon as someone clicks the cell
Window.alert(value);
}
};
ActionCell<String> cell = new ActionCell<String>(safeHtmlTitle,delegate){
@Override
public void render(com.google.gwt.cell.client.Cell.Context context, //we need to render link instead of default button
String value, SafeHtmlBuilder sb) {
sb.appendHtmlConstant("<a href='#'>");
sb.appendEscaped(value);
sb.appendHtmlConstant("</a>");
}
};
Column testColumn1 = new Column<EmployerJobs, String>(cell) {
@Override
public String getValue(EmployerJobs object) {
//we have to return a value which will be passed into the actioncell
return object.name;
}
};
我建议阅读官方documentation对于单元格小部件,因为它几乎是您需要了解的有关单元格小部件的所有内容。
关于gwt - 尝试在我的 GWT cellTable 中添加一些链接单元格,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9212695/