Jsf 如何在不接触页面其余部分的情况下更新动态生成的数据表?
我在视图中有一个设置,在其中动态显示数据表。这是在p:accordion元素中发生的,该元素动态生成选项卡(以及其中的数据表) 用户现在有可能(嗯,应该有…)向datatable添加、编辑和删除对象,从而向选项卡表示的对象添加、编辑和删除对象 添加和编辑功能通过对话框工作。成功添加或编辑后,我想更新包含数据的datatable 如果我更新整个accordion面板,我会失去对当前选项卡的关注,这对用户体验非常不利,特别是因为项目的其他子页面总是只更新datatable 在谷歌搜索之后,我发现我无法动态生成JSF组件的ID,这将使整个过程只需几分钟 当我打开对话框时,我也没有任何索引可以用来“作弊”并保存在我的支持bean中 我还发现我可以通过使用JSTL来解决这个问题,但由于允许的语言有限,这是被禁止的 当前设置如下所示:Jsf 如何在不接触页面其余部分的情况下更新动态生成的数据表?,jsf,primefaces,Jsf,Primefaces,我在视图中有一个设置,在其中动态显示数据表。这是在p:accordion元素中发生的,该元素动态生成选项卡(以及其中的数据表) 用户现在有可能(嗯,应该有…)向datatable添加、编辑和删除对象,从而向选项卡表示的对象添加、编辑和删除对象 添加和编辑功能通过对话框工作。成功添加或编辑后,我想更新包含数据的datatable 如果我更新整个accordion面板,我会失去对当前选项卡的关注,这对用户体验非常不利,特别是因为项目的其他子页面总是只更新datatable 在谷歌搜索之后,我发现我无
<p:accordionPanel id="academicYearAccordionPanel"
value="#{academicYearAndClassController.academicYears}"
var="academicYear" multiple="true" dynamic="true" activeIndex="-1"
style="width:100%;">
<p:tab id="academicYear-#{academicYear.academicYear}" title="Jahrgang - #{academicYear.academicYear}">
<p:outputPanel style="float:right">
<p:commandButton value="Löschen" icon="ui-icon-close"
actionListener="#{academicYearAndClassController.setAcademicYear(academicYear)}"
process="@this"
oncomplete="PF('wConfirmAcademicYearDelete').show();">
</p:commandButton>
</p:outputPanel>
<p:spacer style="height:50px;" />
<p:separator />
<!-- Tabcontent -->
<p:outputPanel>
<p:outputPanel style="float:right">
<p:commandButton value="Hinzufügen" icon="ui-icon-plusthick"
actionListener="#{academicYearAndClassController.setAcademicYear(academicYear)}"
process="@this"
oncomplete="PF('wAddSchoolclassDialog').show();">
</p:commandButton>
</p:outputPanel>
<h:panelGrid columns="2">
<h:outputText
value="Klassen des #{academicYear.academicYear}. Jahrgangs" />
<p:spacer style="height:50px;" />
</h:panelGrid>
<p:dataTable emptyMessage="Keine Klassen vorhanden"
id="schoolclassTable"
var="schoolclass"
selection="#{academicYearAndClassController.schoolclass}"
value="#{academicYearAndClassController.getSchoolclasses(academicYear)}"
selectionMode="single" rowKey="#{schoolclass.name}"
scrollable="true" scrollHeight="500">
<p:column headerText="Name">
<h:outputText value="#{schoolclass.identifier}" />
</p:column>
<p:column headerText="Klassenlehrkraft">
<h:outputText
value="#{schoolclass.teacher.name} (#{schoolclass.teacher.symbol})" />
</p:column>
<p:column headerText="Klassenraum">
<h:outputText
value="#{schoolclass.room.name} (#{schoolclass.room.locationName})" />
</p:column>
</p:dataTable>
</p:outputPanel>
</p:tab>
</p:accordionPanel>
我想用ID
schoolclassTable
更新元素。如何实现这一点?您使用的Primefaces版本是什么?我使用的是Primefaces 5.0。同时,我将设置更改为学年的下拉菜单,每个学年都显示一个带有类的数据表。它起作用了,这就解决了我的问题。