我目前在Wicket/ShieldUI組合圖表方面存在問題。Wicket:ShieldUI圖表在更新時消失
在頁面初始化時,圖表顯示正常(即第一次渲染時)。這些圖表正在呈現爲ListView的一部分。
我需要能夠在這些圖表來更新數據和重繪。迄今爲止,我已經用兩種方法來解決這個問題,但沒有成功解決我的問題。
問題是,當/ a圖通過Ajax調用重新顯示時,它會消失,實際上不會由頁面加載時通過Shield UI js發生的voodoo進行處理。
在我的應用程序圖表中定義了一個配置。這些配置是列表視圖的驅動程序。這些配置包含對數據收集和圖表的引用,這些引用在創建時會利用這一點。
下面是一個在我的onInitialize中創建的簡單代碼示例。
final WebMarkupContainer visualizationContainer = new WebMarkupContainer(WICKET_ID_VIZ_CONTAINER);
chartConfigListView = new ListView<ChartConfig>(WICKET_ID_CHART_CONTAINER_LIST_VIEW, chartConfigList) {
@Override
protected void populateItem(ListItem<ChartConfig> item)
{
final ChartPanel chartPanel = new ChartPanel(WICKET_ID_CHART_THE_CHART, config);
chartPanel.setOutputMarkupId(true);
item.addOrReplace(chartPanel);
}
};
visualizationContainer.add(chartConfigListView);
ChartPanel的內部(onInitialize)實例化新ShieldUI圖表和將其添加到ChartPanel組分(ChartPanel延伸面板)。
因此,第一次ListView填充並創建圖表時,一切都很好。隨後任何時候ListView填充和創建圖表實例都會使用更新後的數據集創建,圖表會消失,將html元素呈現爲完全空白的div。
有沒有人有任何想法我可以如何拯救我的圖表被遺忘?
請注意,在上面的例子中,我使用item.addOrReplace()。我也嘗試過使用簡單的.add(),它也沒有工作。 –
你是否用一些javascript來初步繪製圖表? – WiseTree
不是直接。如果有的話,它會在頁面加載時運行的JQuery JavaScript代碼中鬆動。 –