在AJAX请求之后,<ui-repeat>组件消失

时间:2017-05-24 12:06:16

标签: ajax jsf primefaces

我在PrimeFaces框架中使用JSF 我有<ui-repeat>包含<p:fieldset>,当我使用AJAX查询过滤<p:fieldset>时,<ui-repeat>会从页面中消失。

这是我的代码:

<h:form id="myForm1">
    <p:panelGrid id="pnlg">
        <ui:repeat var="state" value="#{myBean.listState}" varStatus="status">
            <p:fieldset id="fieldsetState">
                <p:dataGrid id="dataGridState" value="#{myBean.state}">
                    <p:panel id="pnl">
                        // some code...
                    </p:panel>
                </p:dataGrid>
            </p:fieldset>
        </ui:repeat>
    </p:panelGrid>
</h:form>

<h:form id="myForm2">
    <p:commandButton value="Filter">
        // When I run this AJAX query, it is supposed to update 'myForm'. Instead, 'pnlg' disappears
        <p:ajax listener="#{ManageState.filterState}" update="myForm1" />
    </p:commandButton>
</h:form>

当我运行这个AJAX查询时,它应该更新'myForm'。相反,'pnlg'消失了。我认为这是因为<ui:repeat>

这是我的支持Bean:

@ManagedBean
@ViewScoped
public class ManageState extends AbstractManagedBean implements Serializable {
    public void filterState() {
        // Filter the list...
    }
}

@ManagedBean
@SessionScoped
public class myBean implements Serializable {
    private List<sortedBean> listState;

    // getter, setter...
}

1 个答案:

答案 0 :(得分:0)

我解决了这个问题,合并了两个表格并且它有效。但我不确切地知道他为什么会这样做。