h:dataTable bodyrows属性是什么意思

时间:2016-02-25 03:51:38

标签: jsf jsf-2 datatable

有人知道h:dataTable bodyrows的含义吗?我尝试了一个简单的例子,但我不明白它应该做什么。

<h:dataTable bodyrows="d" value="#{index.publishDates}" var="d">

这是制作餐桌的某种捷径吗?由于bodyrows注释,我看不到任何行。如果h:column有列,那么bodyrows会做什么?

我不理解the documentation

  

这必须是以逗号分隔的整数列表。此列表中的每个条目都是行的行索引,在该行之前有一个&#34; tbody&#34;元素应该呈现。

1 个答案:

答案 0 :(得分:1)

在HTML中,<table>可以通过<tbody>拥有多个正文。

<table>
    <tbody>...</tbody>
    <tbody>...</tbody>
    <tbody>...</tbody>
</table>

默认情况下,<h:datatable>只生成一个如下所示的正文。

<h:dataTable value="#{[1,2,3,4,5]}" var="i">
    <h:column>#{i}</h:column>
</h:dataTable>

<table>
    <tbody>
        <tr><td>1</td></tr>
        <tr><td>2</td></tr>
        <tr><td>3</td></tr>
        <tr><td>4</td></tr>
        <tr><td>5</td></tr>
    </tbody>
</table>

bodyrows属性可用于指定一个逗号分隔的行索引字符串,它应作为新主体开始。

<h:dataTable value="#{[1,2,3,4,5]}" var="i" bodyrows="0,2,4">
    <h:column>#{i}</h:column>
</h:dataTable>

<table>
    <tbody>
        <tr><td>1</td></tr>
        <tr><td>2</td></tr>
    </tbody>
    <tbody>
        <tr><td>3</td></tr>
        <tr><td>4</td></tr>
    </tbody>
    <tbody>
        <tr><td>5</td></tr>
    </tbody>
</table>

另见: