Jsf p:commandButton可以';t更新p:panel

Jsf p:commandButton可以';t更新p:panel,jsf,primefaces,datatable,Jsf,Primefaces,Datatable,我正在使用PF5.3和JSF2.2 我有一个p:commandButton,它存在于p:dataTable的一个p:column中。我在dataTable外有一个面板,我希望在单击commandButton后更新它,但这不起作用 xhtml示例: <h:form id="register_edit_student" enctype="multipart/form-data" > <p:dataTable var="students" value="#{generalPres

我正在使用PF5.3和JSF2.2

我有一个p:commandButton,它存在于p:dataTable的一个p:column中。我在dataTable外有一个面板,我希望在单击commandButton后更新它,但这不起作用

xhtml示例:

<h:form id="register_edit_student" enctype="multipart/form-data" >
  <p:dataTable var="students" value="#{generalPresentation.students}">
    <p:column headerText="Edit">
      <p:commandButton update="updateStudent" value="Edit" action="#{teacherPresentation.assignEditableStudent(students)}" />
    </p:column>
  </p:dataTable>

  <p:panel id="updateStudent">
  </p:panel>
</h:form>

我的要求是更新“updateStudent”p:面板。 一旦我要求p:commandButton更新面板(update=“updateStudent”),页面设计崩溃,所有控件都消失了

我在互联网上读到数据表中列的commandButton不能更新数据表之外的任何内容,所以问题是,有解决方案或解决方法吗?


谢谢

您有三个选项可以解决此问题:

  • prependId=“false”
    添加到您的
    表单中
  • 在您的引用中预先填写表单id:
    update=“:register\u edit\u student:updateStudent”
  • 将面板移到表单元素之外

  • 注意:第一个选项应该很少使用,并且已知会导致普通JSF出现问题。

    您有三个选项来解决此问题:

  • prependId=“false”
    添加到您的
    表单中
  • 在您的引用中预先填写表单id:
    update=“:register\u edit\u student:updateStudent”
  • 将面板移到表单元素之外


  • 注意:第一个选项应该很少使用,并且已知会导致普通JSF出现问题。

    update=“:register\u edit\u student:updateStudent”
    也不起作用,谢谢。页面不再破碎,但我仍然无法将新值加载到面板中。您在哪里读到dataTable中的commandButton无法更新dataTable之外的任何内容?该网站因传播误导性和明显错误的信息而应离线。如果仍然不起作用,你为什么会接受答案?(好吧,它不再“压碎”了,但更新仍然不起作用)我在2小时前就接受了答案
    update=“:register\u edit\u student:updateStudent”
    也不起作用?谢谢。页面不再破碎,但我仍然无法将新值加载到面板中。您在哪里读到dataTable中的commandButton无法更新dataTable之外的任何内容?该网站因传播误导性和明显错误的信息而应离线。如果仍然不起作用,你为什么会接受答案?(好吧,它不再“压碎”了,但更新仍然不起作用)我在2小时前就接受了答案!一些好的背景信息:
    prependId='false'
    在ajax更新中无效。在这种情况下,您仍然需要预先设置所有id,因此这不是一个好的解决方案:@Kukeltje:这可能适用于普通JSF,但无法复制PrimeFaces组件p:commandButton。实际上,我用给定的代码片段和两个模拟(GeneralPresentation和TeacherPresentation)尝试了所有三个建议选项:所有这三个都有效。真的吗?需要检查一下,因为我(几乎)100%肯定我注意到了PF的prepend问题…但是你说并测试它是否有效,downvote RemovedHMMM我不能,除非答案被编辑…奇怪的好背景信息:
    prependId='false'
    在ajax更新中没有效果。在这种情况下,您仍然需要预先设置所有id,因此这不是一个好的解决方案:@Kukeltje:这可能适用于普通JSF,但无法复制PrimeFaces组件p:commandButton。实际上,我用给定的代码片段和两个模拟(GeneralPresentation和TeacherPresentation)尝试了所有三个建议选项:所有这三个都有效。真的吗?需要检查一下,因为我(几乎)100%肯定我注意到了PF to的前置问题…但是你说并测试它是否有效,downvote RemovedHMMM我不能,除非答案被编辑…奇怪