【问题标题】:How to create a FlexTable with thead and tbody如何使用 thead 和 tbody 创建 FlexTable
【发布时间】:2017-03-23 11:56:26
【问题描述】:

如何在 GWT FlexTable 中创建这个最简单的表格?

<table>
  <thead>
    <tr>
      <th>Month</th>
      <th>Savings</th>
    </tr>
  </thead>
  <tbody>
    <tr>
      <td>January</td>
      <td>$100</td>
    </tr>
    <tr>
      <td>February</td>
      <td>$80</td>
    </tr>
  </tbody>
</table>

FlexTable 的文档并不清楚使用theadtbody 创建表。任何人都可以帮忙吗?提前致谢。

【问题讨论】:

    标签: java gwt flextable


    【解决方案1】:

    如果你想保持FlexTable灵活性,并且需要添加thead元素,可以通过操作TableElement来实现。这是相当低级的,但 id 可以满足您的需求。

    以下是如何获取示例中给出的 DOM 结构:

    FlexTable table = new FlexTable();
    
    table.setText(0, 0, "January");
    table.setText(0, 1, "$100");
    table.setText(1, 0, "February");
    table.setText(1, 1, "$80");
    
    com.google.gwt.user.client.Element oldElement = table.getElement();
    com.google.gwt.dom.client.Element element = (com.google.gwt.dom.client.Element) oldElement;
    TableElement tableElement = (TableElement) element;
    TableSectionElement tHead = tableElement.createTHead();
    
    TableRowElement row = tHead.insertRow(0);
    row.insertCell(0).setInnerText("Month");
    row.insertCell(1).setInnerText("Savings");
    
    RootPanel.get().add(table);
    

    请注意,table.getElement(); 返回已弃用的 com.google.gwt.user.client.Element。它扩展了com.google.gwt.dom.client.ElementTableElement 也是如此。完成所有转换后,您可以将行和单元格添加到 thead

    这是结果(在 Chrome 上使用 GWT 2.7 测试):

    【讨论】:

      【解决方案2】:

      这是不可能的。 为什么需要它?

      【讨论】:

      • 好吧,我真的不需要那样做,但它是表的基本结构,使用 GWT 应该很容易做到这一点。还是我错了?
      • 使用 FlexTable 这当然是不可能的。但也许您真正想要的是 DataGrid 或 CellTable ?