繁体   English   中英

分页后如何刷新jsf页面

[英]How to refresh jsf page after pagination

我已经在jsf + icefaces中创建了selectALL复选框功能。 并且我实现了功能,例如当我选中selectAll复选框时,它选中了所有页面上的所有复选框。 但是,当我进行分页并且如果我选中/未选中时,选中所有复选框,则仅适用于该页面的工作不匹配所有页面。 我的意思是行复选框的状态不一致。 我试图用phaseListener解决这个问题,但是没有运气。

我的代码:jsf

<ace:column id="checkBox">
                                <f:facet name="header">
                                    <h:outputLabel>
                                        <ice:selectBooleanCheckbox id="selectAllID"
                                            value="#{shipBean.checkAll}"
                                            valueChangeListener="#{shipBean.getCheck}"
                                            partialSubmit="true" />
                                    </h:outputLabel>
                                </f:facet>
                                <ice:selectBooleanCheckbox id="selectOne"
                                    value="#{freight.checkBox}">

Java的

    if (shipTrackingData != null) {

                if (shipTrackingData.getCheckAll()) {

                    for (ShipTrackBean check : shipTrackingData
                            .getShipTrackList()) {
                        check.setCheckBox(true);
                    }

                } else {
                    for (ShipTrackBean check : shipTrackingData
                            .getShipTrackList()) {

                        check.setCheckBox(false);
                    }
                }
            }

谢谢...

我已经为JSF应用程序测试了此代码,共有三页:

index_1.xhtml index_2.xhtml index_3.xhtml

@ManagedBean
@SessionScoped
public class pross {
    private boolean challval=false;
    private boolean chval1=false;
    private boolean chval2=false;
    private boolean chval3=false;
.. getters and setters....
}

在每个页面中,我创建了两个复选框,如果在其中任何一个页面中都选中该复选框,则将在所有页面中选中其中一个复选框,但是该复选框与所有页面的相同值(具有挑战性)相关。 页面本身还有一个复选框,每个复选框(chval1,chval2,chval3)。

为了对此进行测试,我为每个页面编写了此xhtml代码,但是您需要根据每个页面更改值,这是index_1.xhtml的代码,您需要更改“转到”链接才能访问其他页面:

 <h:body>
        <h:form>
        Hello, Test checkboxes:
        <br />
        Select this page: <h:selectBooleanCheckbox value="#{pross.chval1}" >
            <f:ajax render="outthis outall"/>
        </h:selectBooleanCheckbox>
        This page select: <h:outputText id="outthis" value="#{pross.chval1}"/>
        <br/>
        Select all pages: <h:selectBooleanCheckbox value="#{pross.challval}">
            <f:ajax render="outthis outall"/>
        </h:selectBooleanCheckbox>
        all pages select: <h:outputText id="outall" value="#{pross.challval}"/>
        <br/>
        <h:link outcome="index_2" value="Go to page 2" />
        <br/>
        <h:link outcome="index_3" value="Go to page 3" />
        </h:form>
    </h:body>

我在这里看不到任何问题,当我在一个页面中选中“全选”时,在其他页面中仍选中了它,我的想法是将“全选”复选框与所有页面的bean值连接在一起。 希望这是有用的,谢谢。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM