如何在pe:gcharts中指定列类型

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何在pe:gcharts中指定列类型相关的知识,希望对你有一定的参考价值。

简单的问题,但我无法想出答案。

在普通的GCharts中,我有这个:

var data = new google.visualization.DataTable();
data.addColumn('datetime', 'Time');
data.addColumn('number', 'Value 1');
data.addColumn('number', 'Value 2');

但是,如何使用PrimerFaces的模型构建器指定值是datetime和number?

.addColumns()方法只是将项添加为List<String>

GChartModelBuilder lineChartModelBuilder = new GChartModelBuilder();
lineChartModelBuilder.setChartType(GChartType.LINE);    
lineChartModelBuilder.addColumns("Time");
lineChartModelBuilder.addColumns("Value 1");
lineChartModelBuilder.addColumns("Value 2");

谢谢!

答案

我假设您使用的是非常旧的PF Extensions版本?我说的原因是在2016年,这是固定使用List<Object>而不是List<String>并在PrimeFaces Extensions 6.1或更高版本中发布。

最新版本的代码可以在这里看到:https://github.com/primefaces-extensions/core/blob/master/src/main/java/org/primefaces/extensions/component/gchart/model/GChartModelBuilder.java

修复于2016年:https://github.com/primefaces-extensions/core/commit/6c473bbc50920bfdaedca02b918c29a5ead8d4d0#diff-f3a907dcc2d19626bf60db5bbebba6be

更新:

如果要使用键值对添加数据,则应该可以。由于GChart使用Google GSON将Java代码转换为JSON到客户端,我认为如果你在字段中放置一个String数组值,它将像你期望的那样反序列化。

创建表示列的POJO:

public class GChartModelColumn {

    // column label
    private final String label;

    // column type: number, date, datetime
    private final String type;

    public GChartModelColumn(String label, String type) {
        super();
        this.label = label;
        this.type = type;
    }

    public String getLabel() {
        return label;
    }
    public String getType() {
        return type;
    }
}

然后使用上面的模型添加列,如...

lineChartModelBuilder.addColumns(
new GChartModelColumn("Time", "datetime"), 
new GChartModelColumn("Value 1", "number"), 
new GChartModelColumn("Value 2", "number"));

然后在JS代码中,它将您的数据对象转换为Google DataTable

var dataTable = google.visualization.arrayToDataTable(this.data);

以上是关于如何在pe:gcharts中指定列类型的主要内容,如果未能解决你的问题,请参考以下文章

jquery 如何能去掉表中指定列重复的数据

如何用Jquery获取Table指定行中指定列的数值

django 在 SQL Server 中指定列排列

匹配或返回与 R 中指定列具有相同日期的列

ON 子句和 INCLUDE 子句中指定列的索引声明差异

SqlSever基础 查看一个数据库中的一个表中指定列的内容