如何向Tapestry Grid添加其他行?

时间:2013-10-02 08:40:16

标签: java datagrid row tapestry tabular

我有一个Grid和它的GridDataSource。但是,我想在所有其他网格下显示该网格的一列。

以下是示例:

到目前为止,我有这个:

| Column 1 | Column 2 | Column 3 | Column 4 | Column 5 |
========================================================
| Data 11  | Data 12  | Data 13  | Data 14  | Data 15  |
--------------------------------------------------------
| Data 21  | Data 22  | Data 23  | Data 24  | Data 25  |
--------------------------------------------------------

我想实现这个目标:

| Column 1 | Column 2 | Column 3 | Column 4 |
=============================================
| Data 11  | Data 12  | Data 13  | Data 14  |
|                  Data 15                  |
---------------------------------------------
| Data 21  | Data 22  | Data 23  | Data 24  |
|                  Data 25                  |
---------------------------------------------

我正在考虑尝试在前4列单元格之后添加<tr>并将我的DataX5放入其中,但这让我无处可去。

2 个答案:

答案 0 :(得分:3)

您可以使用我的griddecorator mixin并为每一行应用GridRowDecorator。装饰器在当前之后创建一个新行,并将最后一个元素移动到新行。

如果没有,请创建自己的mixin,在网格渲染后调整DOM。您可能需要查看我的gridcollapse mixin,其中我会移动列和行并添加rowpans。

答案 1 :(得分:0)

另一种略显狡猾的方法是使用outputRaw和自定义单元来绕过tapestry正确形成的XML要求。

例如

<t:grid source="..." value="current">
   <p:column5Cell>     
      <t:outputRaw value="&lt;/td&gt;&lt;/tr&gt;&lt;tr&gt;&lt;td colspan='4'&gt;" />
      ${current.column5}
   </p:column5Cell>
</t:grid>