Extreme Table是最功能强大而又容易配置,扩展,自定义的Table 控件。

1. ExtremeTable自带的文档.

2.Luck翻译的ExtremeTable官方文档中文版

0.概述

Extreme Table最紧要的功能是排序, 分页, 导出Excel, pdf和汇总。

1. 从http://www.extremecomponents.org/ 下载最新版

2.把extremecomponents.jar 放入web-inf/lib

3.根据minum, 导出excel 或 导出pdf的需要,把/lib下的jiarcopy到web-inf/lib

4.把images里的图片放入web的任意目录

5.把css文件放到web的任意目录

6.在/source/org/extremecomponents/table/core目录找到extremetable.properties文件,把它复制到WEB-INF/classes里面.

7.修改web.xml , 修改全局属性(见2)。

0.2 安装SpringSide的优化版本

1.将springside中的web-inf/lib/extremecomponents-springside.jar 放入web-inf/lib目录

2.将Extreme带的minum和excel jar放入

3.复制 springside中images/table下面的图片到对应目录。

4.将springside中的修改版extremecomponents.css文件放入任意目录

5.把src/extremetable.properties 复制到对应目录

6.修改web.xml , 修改全局属性。

0.3 使用Compact View

默认的式样不符合大家的审美,幸亏还有Compact View和css设置,让我们可以敬谢不敏它号称非常方便的HtmlView子类扩展。

1. 在全局设置里 table.view.html=org.extremecomponents.table.view.CompactView

2.把images里/table/compact/*.gif copy 到 /table

1.自定义及扩展

ExtremeTable比Display Tag的i一个就是良好的自定义和扩展能力,不用千人一面。

不过,人总是懒的,虽然扩展子类很容易,但能不扩展就还是不可扩展了。幸亏用Compact View再改改CSS一般就能达到要求。

1.1. 良好的CSS定义

1.直接修改css文件, 可以把table view改成任意样式

2.修改全局属性, 改变某种元素对应的css class名  table.styleClass=tableRegion

3.在某个页面的row,column tag中定义class  <ec:row style=" " or styleClass=""/>

SpringSide采用层次1, 直接修改extremecomponents.css为合适的样式

1.2.方便的<tr><td>属性扩展

row与column已提供了丰富的普通属性与 javascript属性如onClick(), 如果属性仍然未够,可自行扩展<row>与<column>tag ,并通过全局属性指定新的子类名。

为了方便大家在子类扩展属性, extreme Table提供了专门的回调函数与Util函数如(详细请看手册)

public void addExtendedAttributes(Row row){

table.addAttribute(TableConstants.IDENTIFIER, TagUtils.evaluateExpressionAsString("identifier",identifier, this, pageContext));

}

1.定义真正的Java属性,setter,getter

2. tld文件中声明新的属性

3.重载输出函数将新属性打印出来

1.3 扩展HTMLView,cell 等显示组件

2.全局属性配置

ExtremeTable支持在properties文件里方便的统一配置丰富的全局属性

在/source/org/extremecomponents/table/core目录找到extremetable.properties文件,把它复制到WEB-INF/classes里面.

在web.xml里面增加

<context-param>

<param-name>extremecomponentsPreferencesLocation</param-name>

<param-value>/extremetable.properties</param-value>

</context-param>

我修改过的属性有:

table.autoIncludeParameters=false

table.filterable=false

table.view.html=org.extremecomponents.table.view.CompactView

table.locale=zh_CN

column.format.date=yyyy-MM-dd

column.format.currency=¥###,###,#00.00

row.highlightRow=true

3.导出

ExtremeTable导出的一项重要特性是可以根据不同的View导出不同的列.

比如html管理界面可能只列出订单几个最重要的列,而导出excel时则需要导出所有的列。

<ec:column property="orderdate" title="订单日期"  cell="date" format="yyyy-MM-dd"  viewsDenied= "html"/>

以上订单日期列在html view看不到,而excel,pdf view可以见到.

而"编辑图标","选择Checkbox"这些管理界面上的列,也可以设置不export到pdf,excel view

3.1.中文问题

中文问题一共有3处

1.文件名中文问题,重载AbstractExportFilter.java 的setResponseHeaders()函数

import org.springside.framework.utils.StrUtil;

response.setHeader("Content-Disposition", "attachment;filename=\"" + StrUtil.toUtf8(exportName) + "\"");

2.导出xls

重载XlsView.java,在body()和createHeader()处加

hssfCell.setEncoding(HSSFCell.ENCODING_UTF_16);

3.导出pdf

较长,看http://forum.iteye.com/viewtopic.php?p=108909#108909 ,不过我更希望等它ExtremeTable自己升级

springside的做法是放弃导出前pdf, 直接修改前两个函数并压回jar内.(放弃导出pdf还可以省3M jar,hehe)

4.其他要点

4.1. 使用排序功能时,如果property为嵌套属性时,需要设置alias 因为javascript的关系.

<ec:column property="customer.name" title="客户名称" alias="customer"/>

4.2. Date Cell与NumberCell

在全局属性定义:

column.format.date= yyyy-MM-ddcolumn.format.currency= ¥###,###,#00.00

<ec:column property="totalprice" title="总金额" cell="currency" width="80" />

<ec:column property="shipdate" title="发货日期"  cell="date" width= "80"/>

4.3. 汇总

在column中加入两个cac属性,就会自动在table的底端显示汇总

<ec:column property="totalprice" title="总金额" cell="number" format="###,###,##0.00" calc="total" calcTitle= "汇总:"/>

4.4 i18N

4.4.1 column Title的i18N

在Web.xml里面增加

<context-param>

<param-name>extremecomponentsMessagesLocation</param-name>

<param-value>messages</param-value>

</context-param>

<ec:column property="name" title="book.name"/>

4.4.2 按钮的i18n

extreme table的默认zh_CN已支持中文了,但有些信息不支持,所以自己再实现了一个properties文件,日后如果他跟上了可以去掉.

全局定义里

table.locale=zh_CN

为 source/org/extremecomponents/table/resource/extremetableResourceBundle_zh_CN.properties 补齐以下几项

toolbar.firstPageText=\u7b2c\u4e00\u9875

toolbar.lastPageText=\u6700\u540e\u9875

toolbar.nextPageText=\u4e0b\u4e00\u9875

toolbar.prevPageText=\u4e0a\u4e00\u9875

springside把他直接压回jar.

也可以copy 到src下面

web.xml增加

<context-param>

<param-name>extremecomponentsMessagesLocation</param-name>

<param-value>extremetableResourceBundle</param-value>

</context-param>

4.5 不显示导出excel及分页

最快的方式是设置table的showStatusBar= false

<ec:table  items= "order.orderItems"var="item" action=""   showStatusBar= "false">

Ecside_项目搭建相关推荐

  1. 超简单的react和typescript和引入scss项目搭建流程

    1.首先我们先创建一个react项目,react官网也有react项目搭建的命令 npx create-react-app my-app cd my-app 2.安装我们项目需要的样式依赖,这个项目我 ...

  2. angular6 mysql_Angular6项目搭建

    安装工具: Nodejs, npm     最新版, https://nodejs.org/en/ Angular CLI,    npm install -g @angular/cli Visual ...

  3. webstorm打包rn项目_React 之 项目搭建

    阅读本文约需要6分钟 大家好,我是你们的导师,经常看我朋友圈的同学应该知道,我每天会在微信上给大家免费提供以下服务! 1.长期为你提供最优质的学习资源! 2.给你解决技术问题! 3.每天在朋友圈里分享 ...

  4. 个人博客开发-01-nodeJs项目搭建

    // window系统下 1.nodeJs 安装 nodeJs 安装 看  这里 , 先下载再下一步下一步就OK了,我的是在C盘里安装的. 安装完以后 按 win + R ,在弹出的小框框里输入 CM ...

  5. Spring MVC + Mybatis项目搭建

    1.参考<Java Spring MVC项目搭建(一)--Spring MVC框架集成>配置spring mvc需要的jar包及eclipse配置(主要是针对servlet-api.jar ...

  6. SSM项目搭建一(终)

    2019独角兽企业重金招聘Python工程师标准>>> 项目搭建使用的不仅仅只是前面所说的那些,还有一下比如gson或jackson.个人类库.定时器等等,这里就不一一赘述了.下面看 ...

  7. spring原理案例-基本项目搭建 01 spring framework 下载 官网下载spring jar包

    下载spring http://spring.io/ 最重要是在特征下面的这段话,需要注意: All avaible features and modules are described in the ...

  8. MVVM框架的搭建(二)——项目搭建

    介绍完背景以及初衷之后,我们开始搭建MVVM的框架,这一部分我们进行简单的搭建,了解MVVM架构的基本结构. MVVM框架的搭建(一)--背景 MVVM框架的搭建(二)--项目搭建 MVVM框架的搭建 ...

  9. vue2.0 项目搭建 和vue 2.0 electron 项目搭建

    1.关于electron vue 项目的搭建 全局或者局部安装项目vue:脚手架指令生成: npm install -g vue-cli vue init simulatedgreg/electron ...

最新文章

  1. 【django轻量级框架】点击前端按钮执行本地python程序(os sys的使用)
  2. java 内存_java节省内存的几条建议
  3. oracle闪回保存多久,CSS_oracle 中关于flashback闪回的介绍, 1、必须设定undo保留时间足 - phpStudy...
  4. Linux 下wifi 驱动开发(二)—— WiFi模块浅析
  5. Java字符串替换前缀,从Bash中的字符串中删除固定的前缀/后缀
  6. 通过Intent传递类对象
  7. DataTable判断列是否为空!(实用)
  8. LabView常用快捷键
  9. 基于C++11实现线程池的工作原理
  10. java iterator 源码_Java 集合系列(四)—— ListIterator 源码分析
  11. Java从入门到精通第一版(Java基础)
  12. finereport java无符合资料_Java报表工具FineReport常见的数据集报错错误代码和解释...
  13. 安卓逆向015之JEB静态分析与动态调试(注册机)
  14. 【全网最全】软件测试面试题(含答案),2022最强版,直通大厂
  15. android小米手机拍照功能,小米手机 调用相机拍照后无法返回问题
  16. 2022 面试必刷 461 道大厂架构面试真题汇总 + 面经 + 简历模板
  17. html怎么修改背景图片,css怎么设置背景图片?
  18. python企业微信群聊_python3企业微信群组报警
  19. Apache Log4j 2.0-rc1 发布
  20. MATLAB编程-弹簧振动动画

热门文章

  1. python WARNING: Retrying (Retry(total=4, connect=None, read=None, redirect=None, status=None))————
  2. DeferShading + VSM + HDR + SSAO
  3. PS中可选颜色的计算方法(绝对量)
  4. 微电影广告具有哪些特点?
  5. 虚拟机VMware9上网设置
  6. retrofit源码,这篇文章可以满足你80%日常工作!重难点整理
  7. java 坦克大战连发_Java坦克大战(三)
  8. 基于php鞋城的开发,基于SSH框架技术的B2C网上鞋城的设计和实现(MySQL)(精品)★
  9. Do you want them to be removed from the project too?
  10. 零打碎敲学Android(三)—俄罗斯,你为什么是方块的?