在 primefaces 数据表中过滤后无法编辑值

发布于 2025-01-16 20:19:21 字数 1711 浏览 0 评论 0原文

我在 primefaces 中有一个具有过滤功能的数据表,每一行也都有复选框。当我过滤值并更改复选框值,然后按保存按钮时,当我打印它们时,更改后的值不会出现在后端。 我的数据表看起来像:

<p:dataTable id="tbValues" widgetVar="kVar"  var="k" value="#{mybean.values}" paginatorPosition="top" paginatorTemplate="{PreviousPageLink} {CurrentPageReport}
                {NextPageLink}" filteredValue="#{mybean.filteredValues}" scrollable="true" >
<p:column headerText="Name" filterBy="#{k.name}" >
        <h:outputText value="#{k.name}"/>
</p:column>
<p:column >
    <f:facet name="header">
            <h:outputText value="Value1"/>
    </f:facet>
    <h:selectBooleanCheckbox id="v1" value="#{k.value1}"  immediate="true"/>
</p:column>
<p:column>
    <f:facet name="header">
            <h:outputText value="Value2"/>
    </f:facet>
    <h:selectBooleanCheckbox id="v2" value="#{k.value2}" immediate="true" />
</p:column>
<f:facet name="footer">
<p:toolbar>
<p:toolbarGroup align="left">
    <p:commandButton id="saveBt" value="Save" update="tbValues" widgetVar="saveBt" actionListener="#{mybean.saveValues}"/>
</p:toolbarGroup>
</p:toolbar>
</f:facet>
</p:dataTable>

我的 bean 方法是:

public void saveValues(ActionEvent event){
    System.out.println("filter: "+this.filteredValues);
    if(this.filteredValues!=null) {
        
        for(int i=0;i<this.filteredValues.size();i++) {
            System.out.println(this.filteredValues.get(i).isValue1()+" "+this.filteredValues.get(i).isValue2());
            
        }
    }

}

我的 Primefaces 版本:10
JSF:2.2.15
野蝇:23
乔丹:16

I have a datatable in primefaces having filtering capability, Every row is also having checkboxes. When I filter the values, and change checkbox value, then press save button, the changed value does not appear in the backend when I print them.
My datatable looks like:

<p:dataTable id="tbValues" widgetVar="kVar"  var="k" value="#{mybean.values}" paginatorPosition="top" paginatorTemplate="{PreviousPageLink} {CurrentPageReport}
                {NextPageLink}" filteredValue="#{mybean.filteredValues}" scrollable="true" >
<p:column headerText="Name" filterBy="#{k.name}" >
        <h:outputText value="#{k.name}"/>
</p:column>
<p:column >
    <f:facet name="header">
            <h:outputText value="Value1"/>
    </f:facet>
    <h:selectBooleanCheckbox id="v1" value="#{k.value1}"  immediate="true"/>
</p:column>
<p:column>
    <f:facet name="header">
            <h:outputText value="Value2"/>
    </f:facet>
    <h:selectBooleanCheckbox id="v2" value="#{k.value2}" immediate="true" />
</p:column>
<f:facet name="footer">
<p:toolbar>
<p:toolbarGroup align="left">
    <p:commandButton id="saveBt" value="Save" update="tbValues" widgetVar="saveBt" actionListener="#{mybean.saveValues}"/>
</p:toolbarGroup>
</p:toolbar>
</f:facet>
</p:dataTable>

and my bean method is:

public void saveValues(ActionEvent event){
    System.out.println("filter: "+this.filteredValues);
    if(this.filteredValues!=null) {
        
        for(int i=0;i<this.filteredValues.size();i++) {
            System.out.println(this.filteredValues.get(i).isValue1()+" "+this.filteredValues.get(i).isValue2());
            
        }
    }

}

My Primefaces version: 10
JSF: 2.2.15
Wildfly: 23
JDk: 16

如果你对这篇内容有疑问,欢迎到本站社区发帖提问 参与讨论,获取更多帮助,或者扫码二维码加入 Web 技术交流群。

扫码二维码加入Web技术交流群

发布评论

需要 登录 才能够评论, 你可以免费 注册 一个本站的账号。
列表为空,暂无数据
我们使用 Cookies 和其他技术来定制您的体验包括您的登录状态等。通过阅读我们的 隐私政策 了解更多相关信息。 单击 接受 或继续使用网站,即表示您同意使用 Cookies 和您的相关数据。
原文