0

p:rowExpansion で Primefaces p:datatable を使用しています。私の目的は、次の xhtml を使用して行の詳細を表示することでした。

<p:dataTable
        value="#{bilisimArizaBean.kullaniciBilisimArizalariListesi}"
        var="ariza">
        <p:column style="width:4%">
            <p:rowToggler />
        </p:column>
        <p:column headerText="Arıza no">
#{ariza.bilisimArizaId}
</p:column>
        <p:column headerText="">
#{ariza.bilisimArizaTuru.bilisimArizaTuru}
</p:column>
        <p:column>
#{ariza.cihazMarkasi} #{ariza.cihazModeli} #{ariza.cihazSeriNo}
</p:column>
        <p:column>
#{ariza.arizaAciklama}
</p:column>
        <p:rowExpansion>
            <div>
                <p:panelGrid id="display" columns="4" cellpadding="4"
                    style="border:1px;border-color:red;"
                    styleClass=" ui-widget-content grid">
                    <ui:repeat var="ticket" value="#{ariza.bilisimArizaTicket}">
                        <h:outputText value="Gelişme No" />
                        <h:outputText id="gelisme" value="#{ticket.ticketAciklama}" />
                        <h:outputText value="Durum:" />
                        <h:outputText id="durum" value="#{ticket.arizaDurum.durumAdi}" />
                        <br></br>
                    </ui:repeat>
                </p:panelGrid>
            </div>
        </p:rowExpansion>
    </p:dataTable>

p:rowExpansion 内に列を含むテーブル行が作成されると予想しました。ただし、ui:repeat は、列が 1 つしかない行を含むテーブルを生成します。そして、この列の内側にまたがります。あれは

<table>
<tr>
<td><span>data</span><span>data</span><span>data</span></td>
</tr>
<tr>
<td><span>data</span><span>data</span><span>data</span></td>
</tr>
.
.
.
</table>

私は次のことを期待し、望んでいます

<table>
<tr>
<td>data</td>    <td>data</td>    <td>data</td>
</tr>
<tr>
<td>data</td>    <td>data</td>    <td>data</td>
</tr>
.
.
.
</table>

この場合、なぜ列ではなくまたがるのですか? また、1 つの列のスパンの代わりに列を取得するにはどうすればよいでしょうか?

よろしく

4

1 に答える 1

1

In your particular construct, the <ui:repeat> inside <p:panelGrid> doesn't generate multiple JSF components which generates its HTML each only once. Instead, it reuses the same JSF components to generate its HTML output multiple times on every iteration.

This is not right. You need a <h:dataTable> or <p:dataTable> here instead of <p:panelGrid><ui:repeat>.

E.g.

<h:dataTable var="ticket" value="#{ariza.bilisimArizaTicket}">
    <h:column><h:outputText value="Gelişme No" /></h:column>
    <h:column><h:outputText id="gelisme" value="#{ticket.ticketAciklama}" /></h:column>
    <h:column><h:outputText value="Durum:" /></h:column>
    <h:column><h:outputText id="durum" value="#{ticket.arizaDurum.durumAdi}" /></h:column>
</h:dataTable>

Those spans are unrelated, they are just coming from <h:outputText>.

于 2012-11-27T12:30:20.840 に答える