我的ui.xml中有一个HTML小部件,我在Uibinder中使用它来填充数据,如下所示:
ui.xml - >
<g:HTML ui:field="operationsDetailTableTemplate" visible="false">
<table class="{style.LAYOUT_STYLE}" width="100%" border="1">
<tr>
<td><img src="images/indent-blue.gif"/></td>
<td>
<table class="{style.DEFAULT_STYLE}">
<thead>
<tr>
<th>OperationUuid</th>
....
</tr>
</thead>
<tbody>
<tr>
<td>%s</td>
...
</tr>
</tbody>
</table>
</td>
</tr>
....
</g:html>
Uibinder.java--->
String htmlText = operationsDetailTableTemplate.getHTML()
.replaceFirst("%s", toSafeString(operation.getOperationUuid()))
....
HTML html = new HTML(htmlText);
operationsDetail.add(html);
以上是针对从数据库检索的每个操作的for循环完成的。 我的问题是我如何为每个检索到的操作集在一个单元格(例如操作id)上嵌入超链接或锚标记。我也希望有一个听众。
P.S。 - 它不允许我在ui.xml中的HTML中使用锚标记。
答案 0 :(得分:0)
您最好按照设计使用方式使用这些工具:在ui:field="foo"
和<td>
+ @UiField Element foo
上使用foo.setInnerHTML(toSafeString(...))
而不是提取HTML,修改它并将其重新注入其他地方。您还可以使用<g:Anchor>
并附加@UiHandler
来处理ClickEvent
。
您使用UiBinder的方式让我想到了SafeHtmlTemplates
,或新的UiRenderer
又名 UiBinder for Cells :https://developers.google.com/web-toolkit/doc/latest/DevGuideUiBinder#Rendering_HTML_for_Cells