有没有办法更新PrimeFaces数据表而不更新表头?

时间:2013-11-28 18:45:52

标签: jsf primefaces datatable jsf-2.2

这是一个笨拙的问题! :)

这可能以某种方式成为可能吗?可以更新<p:dataTable>(无论是延迟加载还是其他方式)而不更新其标题(表格中的内容(行)以及页脚应该更新而不更新表格标题)?

<p:dataTable>的更新可能由UICommand <p:commandButton><p:commandLink><p:cellEditor>触发。

<p:rowEditor/><p:dataTable><p:dataTable id="dataTable" var="row" value="#{bean}" ...> <p:column headerText="Header 1" sortBy="#{row.property1}" filterBy="#{row.property1}"> .... </p:column> <p:column> <!--They may be our own headers--> <f:facet name="header"> Header 2 ... </f:facet> .... </p:column> ... </p:dataTable> 中的{{1}}结合使用时,可以看到类似这样的内容(不确定单细胞编辑)。

{{1}}

1 个答案:

答案 0 :(得分:8)

最简单的方法是使用PrimeFaces Selectors (PFS)。这只需要将所需的单元格内容包装在ID 样式类的另一个组件中 - 这样jQuery就可以找到并收集它们。

E.g。

<p:dataTable ...>
    <p:column>
        <f:facet name="header">...</f:facet>
        <h:panelGroup id="col1" styleClass="cell">...</h:panelGroup>
    </p:column> 
    <p:column>
        <f:facet name="header">...</f:facet>
        <h:panelGroup id="col2" styleClass="cell">...</h:panelGroup>
    </p:column> 
    <p:column>
        <f:facet name="header">...</f:facet>
        <h:panelGroup id="col3" styleClass="cell">...</h:panelGroup>
    </p:column> 
    ...
</p:dataTable>
<p:commandButton value="update" update="@(.cell)" />

包装是笨拙的,是的,但是如果没有自制的自定义渲染器,那么这是最好的。您始终可以创建<my:column>标记文件以减少样板。

另见: