【发布时间】:2012-02-02 05:56:18
【问题描述】:
在 TabView primefaces 组件中,在 tabChange 上,我想做一个 ajax 调用来更新 bean 中的 bean 数据,然后需要由 javascript 处理(一些图表)。
我遇到的问题是数据通过我的 ajax 调用正确更新,但使用数据的 javascript 在 ajax 调用更新之前被检索。
这是在 tabChange 事件上带有 ajax 调用的 primeface 组件。
<p:tabView>
<p:ajax event="tabChange" listener="#{bean.onTabChange}" />
<p:tab title="Tab 1" id="tab1">
//chart1
</p:tab>
<p:tab title="Tab 2" id="tab2">
//chart2
</p:tab>
<p:tab title="Tab 3" id="tab3">
//chart3
</p:tab>
</p:tabView>
这是 JavaScript:
function renderTheChart(tabIndex) {
var categories= [];
var categories= [];
<ui:repeat var="data" value="#{bean.dataList}">
categories[categories.length] = "#{data.id}";
values[values.length] = #{data.value};
</ui:repeat>
renderChart(values, categories, tabIndex);
}
要知道何时调用 javascript 来更新组件,我尝试了客户端回调。
<p:tabView onTabChange="handleTabChange(event, index)">
JavaScript:
function handleTabChange(event, index) {
renderTheChart(index);
}
【问题讨论】:
标签: java ajax jsf-2 primefaces