4

我有一个包含列表项和p:commandLink内部的菜单。在将它用于不同的页面时,我意识到我在使用 ap:dataTablep: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。在原始(仍然失败)设置中,菜单被实现为复合组件。

4

1 回答 1

3

作为一种解决方法,我使用

<h:commandLink>
  <h:outputText value="#{p.name}"/>
  <p:ajax event="click" update=":form2" listener="#{bean.selectProject(p)}"/>
</h:commandLink>
于 2012-10-29T16:42:29.290 回答