如何使用datagrid中的轮询安全地切换primefaces面板

时间:2011-04-01 12:31:53

标签: java jsf jsf-2 primefaces

我在数据网格中切换某些面板时遇到问题:

                <h:form id="formxy">

                    <p:panel id="panelxy" header="xy">  
                        <p:focus />

                        <p:dataGrid var="page" value="#{xyViewBean.xyPages}" columns="1" id="grid" paginator="false">
                            <p:column>
                                <p:panel header="#{page.name}" style="text-align:left" toggleable="true" closable="false" toggleSpeed="500" collapsed="#{page.verifiedBy!=null}" >
                                    <h:panelGrid>
                                        <h:column>
                                            <p:inputText value="${page.url}" required="true" label="text" size="60" disabled="false" onclick="poll.stop()" onfocus="poll.stop()" onblur="poll.start()"/>
                                            <p:commandButton value="xy" update="grid" actionListener="#{xyViewBean.handleClose}">
                                                <f:attribute name="xyPage" value="${page}" />
                                            </p:commandButton>

                                        </h:column>
                                    </h:panelGrid>
                                </p:panel>
                            </p:column>
                        </p:dataGrid> 
                        <p:poll interval="3" widgetVar="poll" update="grid" actionListener="#{xyViewBean.finishedListener}"/> 

正如您所看到的那样,折叠或不折叠的状态是动态的。单击xy按钮执行handleClose actionListener,它设置“verifiedBy”字段。因此,此面板应折叠。 comandbutton也更新完整的datagrid没有任何反应。重新加载页面会显示面板已折叠。所以我认为它会起作用,但三秒后,primefaces轮询再次更新数据网格,面板不再崩溃。因此,轮询更新的面板会忽略折叠属性?!有什么想法吗?

primefaces:2.2.1

2 个答案:

答案 0 :(得分:1)

如果不起作用,您可以尝试额外的: 在第一个id之前。这似乎有效。

<p:commandButton value="xy" update=":formxy:grid" />

答案 1 :(得分:0)

尝试;

<p:commandButton value="xy" update="formxy:grid" />