在TabView primefaces組件中,在tabChange上,我想執行ajax-call來更新bean中需要由javascript處理的bean數據(某些圖表) 。JavaScript在Primefaces AJAX事件調用完成之前檢索數據
我遇到的問題是數據正確地用我的ajax調用更新,但使用數據的javascript在被ajax調用更新之前被檢索。
這是在tabChange事件中帶有ajax-call的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);
}
它的作品都很好!感謝與提示。它確實會導致問題,但正如你所提到的,通過在ajax組件中添加「更新」來解決問題!謝謝! –
user373455
2012-01-04 14:23:27
@ user373455沒問題:)如果你看看Mr.J4mes在下面回答,它也應該解決Javascript的問題,並且我認爲這是一個更乾淨的解決方案,因爲它不需要額外的Java代碼。 – 2012-01-04 14:36:05