我有一个CellTable,我想把
HTML代码放在单元格中.
以下代码不起作用,从输出中删除空格.
以下代码不起作用,从输出中删除空格.
TextColumn<MyCell> column1 = new TextColumn<MyCell>() { @Override public String getValue(MyCell myCell) { String result = " " +myCell.getValue(); return result; } }; table.addColumn(column1,"Header1");
我知道这可以使用css完成,但我只是想知道如何将HTML代码放在单元格中.任何帮助表示赞赏!
解决方法
HTML中忽略AFAIK附加空格 – 您应该使用pre标签来保持格式化.无论如何,请在下面找到我的专栏示例.它从数据提供程序支持的对象中包含的值生成良好的进度条.
final SafeHtmlCell progressCell = new SafeHtmlCell(); Column<UiScheduledTask,SafeHtml> progressCol = new Column<UiScheduledTask,SafeHtml>( progressCell) { @Override public SafeHtml getValue(UiScheduledTask value) { SafeHtmlBuilder sb = new SafeHtmlBuilder(); float percent = new Float(value.getCompleted()) / new Float(value.getAll()); int rounded = Math.round(percent * 100); sb.appendHtmlConstant("<div style='width: 100px; height: 20px; position: relative;'>"); sb.appendHtmlConstant("<div style='z-index: 2; display: inline; width: 100px; position: absolute; left: 0px,top: 0px; text-align: center;'>" + value.getCompleted() + "/" + value.getAll() + "</div>"); sb.appendHtmlConstant("<div style='position: absolute; left: 0; top: 0; width: 100px; z-index: 1'><div style='display: inline; float: left; width: " + rounded + "%; height: 20px; background-color: #82cd80;'></div>"); sb.appendHtmlConstant("<div style='display: inline; float: right; width: " + (100 - rounded) + "%; height: 20px; background-color: #c54c4d;'></div></div>"); sb.appendHtmlConstant("</div>"); return sb.toSafeHtml(); } };