我目前在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代码中松动。 –