我遇到了primefaces命令按钮和数据表的问题。我在数据表中有两个按钮。每当首先加载数据表然后再调用按钮操作时,我单击按钮。我只是想在单击按钮时避免数据表加载。
<p:dataTable id="alphaTable" var="cs" binding="#{challengeSetBean.alphaChallengeSetTable}"
value="#{challengeSetBean.challengeSet}" styleClass="myTable"
style="list-style-type:none;width:600px;border:1px;" >
<p:column id="col" style="width:20px;font-size:12px;padding-left:7px;padding-bottom:7px;padding-top:7px;">
..................
................
</p:column>
<p:column style="width:28px;font-size:9px;padding-left:7px;padding-bottom:7px;padding-top:7px;">
<p:commandButton value="#{msg.updateAccount_reset}" action="#{challengeSetBean.editAnswer()}" immediate="true" rendered="#{!cs.editMode}" process="@this" update="col" >
</p:commandButton>
<p:commandButton value="#{msg.common_save}" action="#{challengeSetBean.saveAnswers()}" rendered="#{cs.editMode}" ajax="true" immediate="true" update="@form"/>
<p:commandButton value="#{msg.cancel}" action="#{challengeSetBean.cancelAnswer()}" rendered="#{cs.editMode}" ajax="true" immediate="true" update="@form"/>
<p:commandButton value="#{msg.common_delete}" action="#{challengeSetBean.deleteAnswer()}" rendered="#{!cs.editMode}" immediate="true" update="@form"/>
</p:column>
</p:dataTable>
答案 0 :(得分:1)
将bean放在视图范围中,以便在初始GET请求时仅对其进行一次实例化,并在后续回发中重复使用。从binding
中删除<p:dataTable>
属性,以便由于鸡蛋JSF问题1492而不会重新创建视图范围bean。现在您只需加载challengeSet
({1}} )bean的构造函数。在后续回发期间不会调用它。