primefaces图表上的数字刻度

时间:2012-10-05 04:43:20

标签: jsf charts primefaces

当我们创建primefaces图表时,它会以小数点显示数字比例。我想显示没有小数点的地方,比如简单的munbers。有办法吗?
谢谢

1 个答案:

答案 0 :(得分:4)

<强>更新

虽然下面发布的解决方法仍然有效,但我找到了更合适的解决方案。数字刻度可以通过extender函数格式化:

<p:barChart value="#{testClazz.categoryModel}" legendPosition="ne"
            widgetVar="barChartObj1" extender="ext1"/>

在页面上的<head></head>标记之间放置以下功能:

<script type="text/javascript">
    function ext1() {
        this.cfg.axes.yaxis.tickOptions = {
            formatString : '%d'
        };
    }
</script>

用jqPlot试验了一下后,我发现如果你在绘图结束后重置了轴,小数点后的小数被清除了。如果您的barChart定义如下:

<p:barChart id="basicPlot" value="#{testClazz.categoryModel}" 
    legendPosition="ne" widgetVar="barChartObj"
    title="Basic Bar Chart" min="0" max="270"/>

在页面加载完成后调用以下函数:

<script type="text/javascript">
    $(document).ready( function() {
        setTimeout(formatAxisNumbers, 500);
    });
    function formatAxisNumbers() {
        window.barChartObj.plot.resetAxesScale();
        window.barChartObj.plot.replot();
    }
</script>

请注意,您可以通过以下方式单独重置 x y ,而不是使用resetAxesScale重置这两个轴。

window.barChartObj.plot.axes.xaxis.resetScale();

window.barChartObj.plot.axes.yaxis.resetScale();

您还可以通过将超时减少到较小的数字来实现,以实现更平滑的重新绘制。 有关其他选项,请参阅jqPlot documentation

在谷歌浏览器22.0.1229.94(官方版本161065)中测试。