如何在gwt中将链接(锚标记)嵌入到UIBINDER的HTML上下文中

时间:2012-07-03 21:59:21

标签: html gwt hyperlink anchor uibinder

我的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中使用锚标记。

1 个答案:

答案 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