DataGear 数据可视化表格图表常用配置示例

本文介绍DataGear数据可视化看板中表格图表的配置方法,包括自定义列属性、排序、客户端分页等功能,帮助用户更好地定制展示效果。

DataGear 内置表格图表底层采用的是DataTable表格组件,在数据可视化看板中,可以通过dg-chart-options设置表格选项,具体选项可参考https://datatables.net/reference/option/,本文仅列出一些常用配置示例。

注意:下面这些配置示例需要DataGear-2.1.1及以上版本。

  • 自定义列属性(标题、列宽、是否可排序等)
<script type="text/javascript">
var tableOptions=
{
  columns:
  [
    {
      //标题
      title: "自定义标题",
      
      //列宽:"100px"、"20%"
      width: "100px",
      
      //是否可排序
      orderable: false,
      
      //是否可见
      visible: false
    },
    ...
  ]
};
</script>
...
<div dg-chart-options="tableOptions" dg-chart-widget="..."></div>
...

对于自定义列宽,如果上述width设置不起作用,可以尝试为tableOptions添加如下tableStyle内容:

<script type="text/javascript">
var tableOptions=
{
  columns:
  [
    {
      //列宽:"100px"、"20%"
      width: "300px"
    },
    {
      width: "200px"
    },
    ...
  ],
  tableStyle:
  {
    table: {'table-layout':'fixed'}
  }
};
</script>
...
<div dg-chart-options="tableOptions" dg-chart-widget="..."></div>
...

  • 排序
<script type="text/javascript">
var tableOptions=
{
  //开启排序
  ordering: true,
  
  //第一列升序、第二列降序
  order: [[ 0, 'asc' ], [ 1, 'desc' ]]
};
</script>
...
<div dg-chart-options="tableOptions" dg-chart-widget="..."></div>
...
  • 客户端分页
<script type="text/javascript">
var tableOptions=
{
  //开启分页
  paging: true,
  
  //可选,自定义页大小下拉框
  lengthMenu: [ 10, 25, 50, 75, 100 ],
  
  //可选,默认页大小
  pageLength: 50
};
</script>
...
<div dg-chart-options="tableOptions" dg-chart-widget="..."></div>
...
  • 固定列
<script type="text/javascript">
var tableOptions=
{
  fixedColumns:
  {
    //左边固定列数
    leftColumns: 1,
	
    //右边固定列数
    rightColumns: 1
  }
};
</script>
...
<div dg-chart-options="tableOptions" dg-chart-widget="..."></div>
...
  • 添加序号列
<script type="text/javascript">
var tableOptions=
{
  //添加一个序号列
  processRenderOptions: function(options)
  {
    var columns = options.columns;
    
    columns.unshift(
    {
      title: "序号",
      orderable: false,
      data: "",
      render: function(value, type, row, meta)
      {
        return "";
      }
    });
  },
  
  //设置序号列值
  rowCallback: function(row, data, displayNum, displayIndex, dataIndex)
  {
    $("td:first", row).html(displayIndex);
  }
};
</script>
...
<div dg-chart-options="tableOptions" dg-chart-widget="..."></div>
...
  • 自定义行样式
<script type="text/javascript">
var tableOptions=
{
  //根据数据自定义行背景色、前景色
  rowCallback: function(row, data, displayNum, displayIndex, dataIndex)
  {
    //需要根据实际data结构修改取值逻辑
    let value = data["COL_VALUE"];

    if(value < 80)
    {
      $(row).css("color", "black");
      $("td", row).css("background-color", "gray");
    }
    else if(value < 100)
    {
      $(row).css("color", "yellow");
      $("td", row).css("background-color", "green");
    }
    else
    {
      $(row).css("color", "white");
      $("td", row).css("background-color", "red");
    }
  }
};
</script>
...
<div dg-chart-options="tableOptions" dg-chart-widget="..."></div>
...


  • 自定义单元格内容
<script type="text/javascript">
var tableOptions=
{
  //自定义单元格渲染函数
  //value 单元格值
  //name 单元格列名
  //rowIndex 单元格行索引
  //columnIndex 单元格列索引
  //row 单元格所在的行数据对象
  renderCell: function(value, name, rowIndex, columnIndex, row)
  {
    //第二行第一列为红色,第二列为蓝色
    if(rowIndex == 1)
    {
     if(columnIndex == 0)
      return "<span style='color:red'>"+value+"</span>";
      else
      return "<span style='color:blue'>"+value+"</span>";
    }
    else
    return value;
  }
};
</script>
...
<div dg-chart-options="tableOptions" dg-chart-widget="..."></div>
...


  • 单元格不换行
...
<div dg-chart-widget="..." dg-chart-options="{
  tableStyle:{
    body:{
	  cell:{
	    'white-space': 'nowrap'
	  }
	}
  }
}"></div>
...
  • 单元格保留原格式(换行、缩进等格式)
...
<div dg-chart-widget="..." dg-chart-options="{
  tableStyle:{
    body:{
	  cell:{
	    'white-space': 'pre-wrap'
	  }
	}
  }
}"></div>
...

或者

<script type="text/javascript">
var tableOptions=
{
  //自定义单元格渲染函数
  //value 单元格值
  //name 单元格列名
  //rowIndex 单元格行索引
  //columnIndex 单元格列索引
  //row 单元格所在的行数据对象
  renderCell: function(value, name, rowIndex, columnIndex, row)
  {
    return "<pre>" + value + "</pre>";
  }

};
</script>
...
<div dg-chart-options="tableOptions" dg-chart-widget="..."></div>
...
  • 透明背景色
...
<div dg-chart-options="{
    tableStyle:{
      head:{
        row: {'background-color': 'transparent'}
      },
      body:{
        rowOdd: {'background-color': 'transparent'},
        rowEven: {'background-color': 'transparent'}
      }
    }
  }" dg-chart-widget="..."></div>
...
  • 单元格边框
...
<div dg-chart-options="{
  tableStyle:{
    table:{
      'border-collapse': 'collapse'
    },
    head:{
      cell:{
        'border': '1px solid red',
        'border-bottom': 'none'
      }
    },
    body:{
      cell:{
        'border': '1px solid red'
      }
    }
  }}" dg-chart-widget="..."></div>
...
  • 自定义表头
<script type="text/javascript">
var tableOptions=
{
  headerCallback: function(thead){
    //表头第一列设为红色
    var firstTh = $("th:eq(0)", thead);
    firstTh.css("color", "red");
    
    //添加一行表头
    var api = this.api();
    var header = $(api.table().header());
    var tr = $("#customHead",header);
    if(tr.length == 0){
      header.append("<tr id='customHead'><th colspan='2' style='text-align:center;'>自定义表头</th></tr>");
    }
  }
};
</script>
...
<div dg-chart-options="tableOptions" dg-chart-widget="..."></div>
...
  • 轮播
...
<div dg-chart-options="{carousel: true}" dg-chart-widget="..."></div>
...


官网地址:
http://www.datagear.tech

源码地址:
Gitee:https://gitee.com/datagear/datagear
Github:https://github.com/datageartech/datagear

大屏模板地址:
https://gitee.com/datagear/DataGearDashboardTemplate

DataGear是一款数据可视化分析平台,使用Java语言开发,采用浏览器/服务器架构,支持SQL、CSV、Excel、HTTP接口、JSON等多种数据源,主要功能包括数据管理、SQL工作台、数据导入/导出、数据集管理、图表管理、看板管理等。 系统特点: 1、可管理数据库驱动 可通过驱动程序管理功能添加数据库驱动程序,无需重启,即可支持连接新数据库; 2、多种格式的数据集 支持SQL、CSV、Excel、HTTP接口、JSON等多种格式的数据集; 3、多数据集聚合图表 一个图表可添加多个不同格式的数据集,将它们聚合展示; 4、插件式图表类型 每一种类型的图表都以图表插件形式提供,并内置了大量图表插件,管理员也可上传自定义图表插件,丰富系统图表类型; 5、可自由编辑的HTML看板模板 看板使用原生的HTML网页作为模板,可自由编辑、绑定、异步加载图表,并支持将任意HTML网页导入为看板; 6、丰富的看板API 看板页面内置了大量的页面端API,可用于个性化扩展看板功能。 模块介绍: 1、datagear-analysis 数据分析底层模块,定义数据集、图表、看板API 2、datagear-connection 数据库连接支持模块,定义可从指定目录加载JDBC驱动、新建连接的API 3、datagear-dataexchange 数据导入/导出底层模块,定义导入/导出指定数据源数据的API 4、datagear-management 系统业务服务模块,定义数据源、数据分析等功能的服务层API 5、datagear-meta 数据源元信息底层模块,定义解析指定数据源表结构的API 6、datagear-persistence 数据源数据管理底层模块,定义读取、编辑、查询数据源表数据的API 7、datagear-util 系统常用工具集模块 8、datagear-web 系统业务web模块,定义web控制器、操作页面 9、datagear-webapp 系统Web应用程序组织模块,定义将系统构建为标准WAR程序包的结构 10、datagear-webappembd 系统独立应用程序组织模块,定义将系统构建为独立可执行程序的结构 依赖: Java 8+ Servlet 3.0+ 编译: (执行单元测试编译,需要预先配置单元测试环境) mvn clean package (不执行单元测试编译,无需预先配置单元测试环境) mvn clean package -DskipTests 运行: cd datagear-webappembd/target/datagear-[version] (Linux环境) ./startup.sh (windows环境) startup.bat 调试: 1、将datagear以maven工程导入至IDE工具; 2、将datagear-webapp作为Web应用添加至servlet容器(比如Tomcat); 3、以调试模式运行Servlet容器。 调试注意: 在调试开发分支前(dev-*),建议先备份DataGear工作目录([用户主目录]/.datagear), 因为开发分支程序启动时会修改DataGear工作目录,可能会导致先前使用的正式版程序、以及后续发布的正式版程序无法正常启动。 调试时,系统仅会在第一次启动时升级内置数据库(Derby),如果遇到内置数据库访问异常,需要查看 datagear-management/src/main/resources/org/datagear/management/ddl/datagear.sql 文件,从中查找需要更新的SQL语句,手动更新至内置数据库。 系统自带了一个可用于为内置数据库执行SQL语句的简单工具类org.datagear.web.util.DerbySqlClient,可以在IDE中直接运行。注意:运行前需要先停止DataGear程序。 DataGear数据可视化分析平台 更新日志: v2.9.0 重构内置表格图表配置项,支持细粒度配置表格样式
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值