私は優れたライブラリ Primefaces を使用していますが、残念ながら、独自のコンポーネントを作成してカスタマイズする必要があります。
問題は、コンポーネントが最初のタブでは適切に表示されるが、2 番目のタブでは表示されないことです。
タブの読み込み中にコンポーネントの表示を強制する方法は?
カスタムコンポーネント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>
よろしくお願いいたします。