使用ui显示的数据:重复但不包含p:dataTable

时间:2015-09-04 08:20:45

标签: jsf-2 primefaces jsf-2.2

搜索掩码的渲染适用于ui:repeat,但不适用于p:dataTable。有人可以解释一下吗?

工作:

<p:panelGrid>
    <ui:repeat value="#{curSearch.getSearchMaskDescription().getRows()}" var="curRow" varStatus="rowStatus">
        <p:row >
            <ui:repeat value="#{curRow.getElements()}" var="curMaskElement" varStatus="colStatus">
                <p:column colspan="#{curMaskElement.columnSpan}">

                    <mycomp:searchFieldCC isShortSearchMask="false" curMaskElement="#{curMaskElement}" curRowIndex="#{rowIndexVar}"
                        curColumnIndex="#{columnIndexVar}" />

                </p:column>
            </ui:repeat>
        </p:row>
    </ui:repeat>
</p:panelGrid>

不工作:

<p:dataTable id="searchMaskTableId" value="#{curSearch.getSearchMaskDescription().getRows()}" var="curRow" rowIndexVar="rowIndexVar"
    styleClass="searchMaskFieldsGrid">
    <p:columns value="#{curRow.getElements()}" var="curMaskElement" columnIndexVar="columnIndexVar" colspan="#{curMaskElement.columnSpan}">

        <mycomp:searchFieldCC isShortSearchMask="false" curMaskElement="#{curMaskElement}" curRowIndex="#{rowIndexVar}" curColumnIndex="#{columnIndexVar}" />

    </p:columns>
</p:dataTable>

区别仅在于我认为的迭代。 ui:repeat是在另一个阶段构建的,但我原本以为ui:repeat不起作用。 使用p:dataTable呈现的html:

<div id="searchInstancesFormId:searchMaskTableId" class="ui-datatable ui-widget searchMaskFieldsGrid">
    <div class="ui-datatable-tablewrapper">
        <table role="grid">
            <thead id="searchInstancesFormId:searchMaskTableId_head">
                <tr role="row"></tr>
            </thead>
            <tbody id="searchInstancesFormId:searchMaskTableId_data" class="ui-datatable-data ui-widget-content">
                <tr data-ri="0" class="ui-widget-content ui-datatable-even" role="row"></tr>
                <tr data-ri="1" class="ui-widget-content ui-datatable-odd" role="row"></tr>
                <tr data-ri="2" class="ui-widget-content ui-datatable-even" role="row"></tr>
                <tr data-ri="3" class="ui-widget-content ui-datatable-odd" role="row"></tr>
                <tr data-ri="4" class="ui-widget-content ui-datatable-even" role="row"></tr>
            </tbody>
        </table>
    </div>
</div>

没有呈现的列。为什么? 表单通过ajax更新。 数据模型是正确的。

0 个答案:

没有答案