0

以下に示すように、データを入力するために Uibinder で使用している ui.xml に HTML ウィジェットがあります。

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 ループで実行されます。私の質問は、取得した操作セットごとにセルの 1 つ (操作 id など) にハイパーリンクまたはアンカー タグを埋め込む方法です。また、それにリスナーを付けたいと思っています。

PS - ui.xml の HTML にアンカー タグを含めることはできません。

4

1 に答える 1

0

HTML を抽出して変更し、別の場所に再注入する代わりにui:field="foo"<td>および@UiField Element foo+で使用するように設計された方法でツールを使用することをお勧めします。a を使用して、 anをハンドルsにアタッチするfoo.setInnerHTML(toSafeString(...))こともできます。<g:Anchor>@UiHandlerClickEvent

あなたの UiBinder の使用方法はSafeHtmlTemplates、または新しいUiRenderer別名UiBinder for Cellsを思い起こさせます: https://developers.google.com/web-toolkit/doc/latest/DevGuideUiBinder#Rendering_HTML_for_Cells

于 2012-07-04T00:06:19.387 に答える