Я пытаюсь сделать следующие JSF страницы:Как использовать р: Ajax для обновления нескольких компонентов, чтобы
<h:form id="form" prependId="false">
<h:panelGrid width="100%">
<h:panelGroup id="tableDiv" layout="block">
<h:panelGroup layout="block" style="text-align: center;">
<p:dataTable id="table" var="_item"
value="#{primeBean.findTableModel()}">
...
</p:dataTable>
</h:panelGroup>
</h:panelGroup>
<h:panelGrid columns="2" width="100%">
<h:panelGroup id="barChartDiv" layout="block">
<p:barChart id="barChart"
value="#{primeBean.findCartesianModel()}">
<p:ajax event="itemSelect" listener="#{primeBean.handleItemSelect}"
update="pieChartDiv,tableDiv" />
</p:barChart>
</h:panelGroup>
<h:panelGroup id="pieChartDiv" layout="block">
<h:panelGroup layout="block">
<p:pieChart id="pieChart">
<p:ajax event="itemSelect" listener="#{primeBean.handleItemSelect}"
update="tableDiv" />
</p:pieChart>
</h:panelGroup>
</h:panelGroup>
</h:panelGrid>
</h:panelGrid>
</h:form>
Когда я нажимаю в любом баре на p:barChart
, я ожидаю, что компоненты в обновлении атрибут будет отображаться в том порядке, в котором я объявляю (pieChartDiv,tableDiv)
, но они отображаются в обратном порядке (tableDiv,pieChartDiv)
.
Это нормальное поведение? Как обновить список компонентов в том порядке, в котором объявлены элементы?
Это решение работает нормально! Благодаря! Но p: ajax и f: ajax может реализовать эту функцию на одном компоненте, не так ли? – gustavodevmax
Добро пожаловать. Я не уверен, понимаю ли я ваш последний вопрос. Что именно ты имеешь ввиду? Какая функция? Какой компонент? "Мог"? – BalusC
Я попытался сказать, что тег p: ajax, например, может включать в себя логический атрибут, называемый «updateInOrder», чтобы упростить способ сделать то, что вы предложили для решения этой проблемы. В случае, если атрибут был истинным, порядок обновления может быть выполнен, как указано. Но это была просто мысль об упрощении решения, вопрос уже урегулирован. Спасибо! – gustavodevmax