我有一个页面有几个条件,当我尝试打开 selectCheckBoxMenu 时,我希望从服务器调用该方法,但我得到了一些奇怪的东西。包含我的项目的列表不显示并且始终抽搐。
<p:selectCheckboxMenu id="scroll"
value="#{adminManageTournamentController.teamListSelected}"
label="#{msg.teams}" filter="true" filterText="Filter"
filterMatchMode="startsWith" panelStyle="width:auto"
onShow="sourceFilterCommand();">
<f:selectItems value="#{adminManageTournamentController.teamList}"
var="team" itemLabel="#{team.name}"
itemValue="#{team.id}"/>
<p:column>
#{team.name}
</p:column>
<p:remoteCommand name="sourceFilterCommand" update="scroll"
actionListener="#{adminManageTournamentController.selectTeamsByConditions}"/>
</p:selectCheckboxMenu>
我是否选择了正确的决策方式?如何摆脱抽搐列表?
最佳答案
这些抽搐的原因可能是无限循环。当您的 p:selectCheckboxMenu
显示时,调用远程命令,并且 p:selectCheckboxMenu
更新并再次显示,并再次调用远程命令......这永远不会结束。奇怪的是,您正在 onShow
中更新组件。您可能应该在更新条件发生变化时执行此操作,这不是您应该更新组件的地方。例如,如果此 p:selectCheckboxMenu
依赖于某些 p:selectOneMenu
,则当 p:selectOneMenu
的值更改时更新它。
关于java - Primefaces 3.5 selectCheckBoxMenu调用事件onShow,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14954253/