我使用了优秀的库 Primefaces,但不幸的是我不得不创建自己的组件来自定义它。
问题是该组件在第一个选项卡上显示得很好,但在第二个选项卡上却没有。
加载选项卡时如何强制显示组件?
这里是自定义组件wm:dateLineChart:
<?xml version='1.0' encoding='UTF-8' ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
xmlns:cc="http://java.sun.com/jsf/composite"
xmlns:h="http://java.sun.com/jsf/html">
<!-- INTERFACE -->
<cc:interface>
</cc:interface>
<!-- IMPLEMENTATION -->
<cc:implementation>
<h:panelGroup rendered="true">
<div id="#{cc.id}"
style="height:208px;"/>
<script type="text/javascript" >
var chartId = '<h:outputText value="#{cc.id}"/>';
dateLineChart(chartId);
function dateLineChart(id) {
$(document).ready(function(){
jQuery.jqplot (id, [[3,7,9,1,4,6,8,2,5]], {
title: 'Plot With Options',
axesDefaults: {
labelRenderer: $.jqplot.CanvasAxisLabelRenderer
},
axes: {
xaxis: {
label: "X Axis",
pad: 0
},
yaxis: {
label: "Y Axis"
}
}
});
});
}
</script>
</h:panelGroup>
</cc:implementation>
</html>
在这里我使用它:
<p:tabView id="tabView" dynamic="true" cache="true">
<p:tab id="homeView">
<wm:dateLineChart id="chartOnFirstTab" />
</p:tab>
<p:tab id="otherView" >
<wm:dateLineChart id="chartOnSecondTab" />
</p:tab>
</p:tabView>
提前感谢您的帮助。