有没有任何方法可以在不更新表头的情况下更新PrimeFaces数据表



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

这能以某种方式实现吗?<p:dataTable>(无论是延迟加载的还是以其他方式加载的)是否可以在不更新其页眉的情况下进行更新(表内的内容(行)和页脚应在不更新表头的情况下更新)?

<p:dataTable>的更新可以由任何UICommand触发,如<p:commandButton><p:commandLink>等。

当我们将<p:cellEditor><p:dataTable>中的<p:rowEditor/>结合使用来编辑/更新行时,类似的事情可以被可视化(不确定单单元格编辑)。

<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>

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

例如

<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>标签文件来减少样板文件。

另请参阅:

  • PrimeFaces选择器如何在更新="@(.myClass)";工作

最新更新