1

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

4

1 回答 1

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>

请注意,resetAxesScale您可以通过执行以下操作分别重置xy ,而不是重置两个轴:

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

或者

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

您还可以尝试将超时减少到更小的数字,以实现更平滑的重新绘制。有关其他选项,请参阅jqPlot 文档

在 Google Chrome 22.0.1229.94(官方版本 161065)中测试。

于 2012-10-16T18:40:57.957 回答