我有一个包含列表项和p:commandLink
内部的菜单。在将它用于不同的页面时,我意识到我在使用 ap:dataTable
和p:columns
内部更新表单时遇到问题。点击链接后,form2
实际上有一些面板和里面的表格应该更新。现在我的问题:只有大部分内容 form2
被正确更新,但p:columns
具有旧值。如果我再次单击该链接,则会显示正确的值。
bean 方法public void selectProject(Project myProject)
被正确调用并且值被正确处理。
现在奇怪的是:如果我添加h:graphicImage
一个p:ajax
一切正常!
<h:form id="form1">
...
<li>
<p:commandLink update=":form2" actionListener="#{bean.selectProject(p)}">
<h:outputText value="#{p.name}" />
</p:commandLink>
<!-- Code below is for testing only, but works fine! -->
<h:graphicImage value="#{iconBean.icon(12,'clock')}">
<p:ajax event="click" update=":form2" listener="#{bean.selectProject(p)}"/>
</h:graphicImage>
</li>
...
</h:form>
更新这似乎与p:columns
一个简化的测试用例显示了预期的行为无关p:commandLink
。在原始(仍然失败)设置中,菜单被实现为复合组件。