【问题标题】:How to use HTMLTable in UiBinder?如何在 UiBinder 中使用 HTMLTable?
【发布时间】:2013-10-07 08:44:22
【问题描述】:

为什么网上没有关于如何在 UiBinder 中使用 HTMLTable 的信息?

我试过这个简单的代码:

           <g:HTMLTable>
               <g:row>
                   <c:cell>
                       <b>My Info</b>
                   </c:cell>
               </g:row>
           </g:HTMLTable>

运行后显示No class matching "row" in urn:import:com.google.gwt.user.client.ui: &lt;g:row&gt;错误。

有人知道怎么用吗?

【问题讨论】:

    标签: gwt uibinder


    【解决方案1】:

    无话可说,因为有话要说。

    首先,HTMLTable 是一个抽象类,是FlexTableGrid 的基础。 FlexTable 不能通过 UiBinder 配置其子级,这与 Grid 不同(这在其 javadoc 中有记录)。

    如果要在表构建后动态更改表的内容,则可以使用Grid(或FlexTable)。否则,没有理由使用此类小部件,只需将 &lt;table&gt; 放在 HTMLPanel 中即可。

    【讨论】:

    • 我想用Table来布局简单的3列布局:Name Label-Name TextBox - Search Button,但是Css专家说用布局不好。另外我担心它在旧浏览器上运行时会导致一些怪癖。用 Grid 做那个 Layout 好不好?
    • Grid 是一个表格,所以如果你认为(或有人告诉你)你不应该使用表格进行布局,那么也不要使用Grid
    • 这就是为什么我听到有人说不要使用 VericalPanel、Horizo​​ntalPanel、Grid.. 这会在其他浏览器中产生一些怪癖。 Google 建议使用 DockLayoutPanel、SplitLayoutPanel、...(或任何带有“Layout”一词的类)进行布局。所以我不认为 Grid 是一个好的选择。网格应仅用于呈现数据。
    • 要呈现数据,CellTable 一般比较合适。但实际上,使用目前最适合你的东西,知道你在做什么(即了解 CSS 怪癖并做出有意识的决定,不要只听人们说你应该做什么),并且毫不犹豫地重构你的稍后再编写代码(当您了解更多并了解您做错了什么以及您可以做得更好时)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2017-09-10
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-04-26
    相关资源
    最近更新 更多