【问题标题】:FlexTable with Uibinder or alternatives带有 Uibinder 或替代品的 FlexTable
【发布时间】:2014-04-14 12:12:22
【问题描述】:

在 uiBinder 中使用 flextable 的最佳方式是什么,我已经知道我必须提供它并在 initWidget 之前启动它

@UiField(provided = true) FlexTable contentTable;

但我只需要一个表格作为输入矩阵:

pseudo:

 Label."Name: " TextBox() 
 Label."Password: " TextBox() 

知道考虑 FlexTable 是个好主意还是有更好的替代方案? 感谢您的帮助。

【问题讨论】:

  • 顺便说一句,您不必“提供它并在 initWidget 之前启动它”......这仅适用于需要使用 UiBinder 模板无法提供的构造函数参数的自定义小部件(至少以干净的方式)

标签: java google-app-engine gwt uibinder


【解决方案1】:

我会告诉你,使用表格布局表单既不是最佳选择,也不是好习惯。

您可以在 UiBinder 中使用 HTMLPanel,并像使用“普通”页面一样在 HTML 中执行所有操作,并为小部件添加一些额外的 GWT 标签:

<g:HTMLPanel>
   <div class="formInput">
      <g:Label text="First Name - W3C style : ">
      <g:TextBox ui:field="firstNameTextBox">
   </div>


   <table>
     <tbody>
        <tr>
            <td>Last name - table style :</td>
            <td><g:TextBox ui:field="lastNameTextBox" /></td>
        </tr>
        <tr>
            <!-- Other form fields -->
        </tr>
     </tbody>
   </table>
</g:HTMLPanel>

【讨论】:

  • 谢谢。我已经这样做了。不确定这是否是最好的方法,因此我问了这个问题:) 感谢您的快速回答。
【解决方案2】:

如果您只希望表格显示输入表单,我会考虑使用纯 HTML 小部件,混合 GWT 小部件,如下所示。

<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
         xmlns:g="urn:import:com.google.gwt.user.client.ui">
<ui:style>

</ui:style>
<g:HTMLPanel>
    <table>
        <tr>
            <td>Name:</td>
            <td>
                <g:TextBox ui:field="name"/>
            </td>
        </tr>
        <tr>
            <td>Password</td>
            <td>
               <g:PasswordTextBox ui:field="password"/>
            </td>
        </tr>
    </table>
   </g:HTMLPanel>
 </ui:UiBinder> 

首选 FlexTable 来显示数据或可编辑数据。因为显示这些类型的信息真的很快。据我所知,过度使用小部件会降低应用程序的速度。

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-01-23
    • 1970-01-01
    相关资源
    最近更新 更多