`

[2007-01-29发布]ECSide 1.1 rc1: 列表组件eXtremeComponents全面增强版!

阅读更多
请不要再下载此版本
最新 ECSide 1.1 final版本已经发布 请大家访问 

http://fins.iteye.com/blog/54265


EC Side介绍:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
作者: fins ( name: Wei Zijun    email:fins@163.com   blog:http://fins.iteye.com )


EC Side是一个开源的列表组件。
他源自著名开源列表组件 eXtremeComponents (http://www.extremecomponents.org),
但现在已经脱离eXtremeComponents,独立发展(仍有大量代码来自 eXtremeComponents)。
“做最实用易用的列表组件”是ECSide最终的目标。


ECSide发布地址:
1.1版本:  http://fins.iteye.com/blog/51068
1.0版本:  http://fins.iteye.com/blog/40190
ECSide圈子:
http://ecside.iteye.com/
ECSide综合讨论专用帖
http://fins.iteye.com/blog/48723 


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
主要增强的功能:
1 可设置工具条位置(上 下 或 不显示)
2 可设置工具条内容(显示哪些 不显示哪些)
3 可设置工具条上各个功能按钮的相对位置
4 增加了调整页大小的选择框,并可自定义选择框内的内容
5 增加了带有邻近页面的导航条
6 增加了可跳转到指定页面的跳转框
7 增加了当前选中行高亮
8 为ec:table 增加了 excludeParameters 和 includeParameters 属性,可以实现更快捷简便的“参数保留/不保留”功能
9 可添加自定义的html代码到工具条内 或其他位置
10 可手动调整列宽
11 增加了“列表内部滚动条”(实现列表头固定,列表体滚动的功能)
12 为ec:row和ec:column 添加更多的html事件支持,现支持:onmouserover onmouserout onclick ondbclick
13 为ec:table ec:row ec:column增加了自定义扩展属性功能
14 增加 ec:extendrow 标签,实现列表扩展行的功能
15 增加shadowRow(影子行)功能:每行下面可以再加一个子行 这个行里显示什么可以由大家自己定义
16 增加页面变量 ${TOTALROWCOUNT} 用来标示当前纪录在全部记录中的行数
17 增加了打印功能(尚不完善)
18 ec:column属性增加 ellipsis ,实现单元格内数据过长的时候 自动截短并加"..."的功能(ie only)
19 实现了跨列的列表头
20 统计栏的标题格可跨列
21 增加了若干种cell 和 headerCell,例如checkbox radio
22 取消了imagePath属性,样式相关的图片信息全部提入css内
23 重(第4声)用了js 和css ,很多功能用js来实现
24 支持了ajax翻页 (可设置 客户端 还是 服务端进行 html代码剪裁 )
25 支持预查询功能,在察看第n页的时候,把n+1页的数据也查询出来(隐藏着)备用,加快查看下一页的速度
26 将导出excel所使用的组件由poi切换成了 jxl
27 xls导出方式修改 原始的导出是导出的vo/map里的原始数值 现在是导出页面实际显示的内容
28 增加简捷导出方式 (通过ec:table的 xlsFileName pdfFileName csvFileName属性)
29 支持pdf简体中文导出。
30 代码进行了大规模的重构
31 增加了很多ajax相关特性
32 实现了可编辑列表功能
33 实现了cell的映射功能
34 easyList特性:可通过简单的配制,快速实现列表数据的展现、查询、修改、删除。
... ...



~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
更新日志:
===============================
2007-01-29 15点
ECSide 1.1 RC1 发布
===============================
1 新增easyList特性:可通过简单的配制,快速实现列表数据的展现、查询、修改、删除。
2 为ectable增加全局的“是否可编辑”属性,方便权限控制。 editable="true" or "false"。
3 修正了很多以前没有发现的bug,其中有些是非常严重的bug(但不常见)。
4 优化了一些代码,提升了一点速度,优化的方式主要是减少迭代内部的代码时间复杂度,属于初级优化。
5 将全局行号的取法由${TOTALROWCOUNT}换成了${GLOBALROWCOUNT},更容易理解。
6 为可编辑列表增加了删除功能,具体实现可看相关例子。
7 提供了更多的示例。通过maim.html引导页面进行选择。(其中提供了一个简单的OPOA的例子)

PS:
即使不使用easyList特性,那么也建议更新该版本。
同时请注意依赖包里新加了一个commons-codec-1.3.jar。
关于easyList特性的具体是使用方法,过一阵会推出新的flash教程。
想先尝鲜的可以结合例子以及之前发布的那个新特性的flash看一下。
(flash所在帖: http://www.iteye.com/topic/50261


以往更新日志:
(详见 CHANGELOG.txt)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
部分增强功能简介:
(详见 HELP.txt)


~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
请阅读一下以下信息,以帮助您了解您要使用的将是一个多么不成熟的东西(但它会有成熟的一天,而且那天不会远 呵呵):
1 ECSide不能和原始版本的 eXtremeComponents 同时使用,且不保证能与原先使用 eXtremeComponents 的系统兼容,请见谅。
2 目前只支持GBK编码的应用,使用其他编码须使用者自行转换,请见谅。
3 目前只在IE6 和FireFox2 上进行过测试,不保证兼容其他(版本)浏览器,请见谅。
4 目前提供的样式风格巨丑无比,请见谅。
5 目前没有完备的文档,请见谅。
6 代码没有注释,没有测试用例,请见谅。
7 没有很好的版本控制,没有构建脚本,请见谅。
8 拥有许多未知的bug,请见谅。
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

其他出色的列表组件(有些是收费的):

eXtremeComponents原始版 ( http://www.extremecomponents.org )
dhtmlXGrid ( http://scbr.com/docs/products/dhtmlxGrid/ )
displaytag ( http://displaytag.sourceforge.net )
nitobi grid ( http://www.nitobi.com/products/grid/ )
ActiveWidgets gird ( http://www.activewidgets.com/grid/ )
rico livegrid ( http://openrico.org/rico/livegrid.page )
  • ecside_1.1_rc1_20070129.zip (662.5 KB)
  • 描述: 该附件包含全部ecside源代码,以及示例代码,但并不包含依赖的jar包。 依赖的jar包可以去ecside圈子里下载, 或者按照该附件内的\WEB-INF\lib下的filelist.txt文件里记录的jar包自行下载。
  • 下载次数: 959
  • ECSideTutorials_easyList.rar (1005.6 KB)
  • 描述: ecside新特性:easylist的简明教程1.(指介绍了简单功能的实现,今后还将介绍更复杂的使用方法)
  • 下载次数: 1402
分享到:
评论
53 楼 shim 2007-02-11  
哦,原来是我搞错了。
原来还要自己在Action中
(String[])formMap.get(TableConstants.RECORDKEY_NAME))[0]
取出再赋值,不能自动注入吗
52 楼 shim 2007-02-11  
可能是我描述得不够清楚。
其实我的意思就是说能否在
<ec:column width="100" property="username" title="用户名" cellValue="${user.username}"/> 

再加一个标签name,如下:
<ec:column width="100" property="username" name="userinfo.username" title="用户名" cellValue="${user.username}"/> 

然后读取数据时根据property去读相应的值。
但生成源码时先看是自定义了name标签。如没有,则默认为property
如有(比如name="userinfo.username"),
则生成源码时按name的值去确定cellName,即:
<td width="100"  cellValue="fins"  cellName="userinfo.username"   >fins</td>

这样灵活性更大。
否则像我那样的需求就不能满足了
51 楼 shim 2007-02-11  
fins 写道
生成
<td width="100"  cellValue="fins"  cellName="username"   >fins</td>  

是对的啊
为什么要生成  cellName="userinfo.username" ??

因为这我里的保存数据时:

  
private UserInfo userinfo;   
 public String save(){   
        manageUsersDao.save(userinfo);   
        return "saved";   
    }   

数据要传到userinfo变量的username属性里。所以要让它生成为 cellName="userinfo.username"才行。
生成cellName="username"时数据不能传到userinfo中
50 楼 fins 2007-02-11  
生成
<td width="100"  cellValue="fins"  cellName="username"   >fins</td>  

是对的啊
为什么要生成  cellName="userinfo.username" ??
49 楼 shim 2007-02-10  
想请教一下这样的问题。
我是用Struts2框架
但我不习惯用Model。
Action如下:
import java.util.List;

import org.apache.struts2.ServletActionContext;
import org.shi.oracle.ecside.dao.ManageUsersDao;
import org.shi.oracle.ecside.pojo.UserInfo;

public class ManageUsersAction {
		
	private List<UserInfo> userinfolist;
	private ManageUsersDao manageUsersDao;
	private UserInfo userinfo;
	private int totalRows;
	public String doit(){
	
		userinfolist=manageUsersDao.getAll();
		totalRows=1;
		setToRequest("recordList",userinfolist);
		setToRequest("totalRows",totalRows);
		setToRequest("GENDER_MAP",CommonDictionary.GENDER);
		setToRequest("USERROLE_MAP",CommonDictionary.USERROLE);
		return "success";
	}
	public String save(){
		manageUsersDao.save(userinfo);
		return "saved";
	}
	/*========================================*/
     protected void setToRequest(String name, Object value) {		
		ServletActionContext.getRequest().setAttribute(name,value);
	}

	public List<UserInfo> getUserinfolist() {
		return userinfolist;
	}
	public void setManageUsersDao(ManageUsersDao manageUsersDao) {
		this.manageUsersDao = manageUsersDao;
	}
	public UserInfo getUserinfo() {
		return userinfo;
	}
	public void setUserinfo(UserInfo userinfo) {
		this.userinfo = userinfo;
	}
	
}


JSP中代码如下:

<ec:table items="recordList" var="user" action="./test!doit.do"
title="用户列表" sortable="true" 
xlsFileName="用户列表.xls"
pdfFileName="用户列表.pdf"
toolbarLocation="bottom" 
toolbarContent="navigation|pagejump|pagesize|export|extend|status"

nearPageNum="3"
maxRowsExported="400"

pageSizeList="max:310,10,15,30,50,100,all"

minColWidth="30"
resizeColWidth="true" 

editable="true"
width="680px" 
listHeight="180px"

>
<!-- 
注意第2个column,它实现了 shadowRow。主要是那个EccnUtil.showShadowRow('${ecTableId}',this.parentNode,this) 函数
EccnUtil.showShadowRow( 参数1 最终生成的form的id,省略的话会默认是 ec ; 参数2 当前行; 参数3 事件源)
-->
<!-- recordKey 用来指定 行(每条记录)的唯一标识的值 可以理解为记录的主键 如果是联合主键 可以用类似这个例子中的方法进行拼串 -->
<ec:row recordKey="${user.userid}"  >
	<ec:column width="50" property="_0" title="序号" sortable="false" ><input type="hidden" value="${user.memo}" />${GLOBALROWCOUNT}</ec:column>
	<ec:column width="100" property="username" title="用户名" cellValue="${user.username}"/>
	
<ec:extend location="bottom">
<div style="text-align:center;width:680px;padding:3px">
<button type="button" onclick="saveUserInfo('${ecTableId}');" style="width:120px" ><font color="red">保存</font>列表数据</button>
</div>
</ec:extend>

</ec:table>


这样结果就是点保存时不行。
原因是因为数据没有提交上去。
<ec:column width="100" property="username" title="用户名" cellValue="${user.username}"/>

生成的源码如下:
<td width="100"  cellValue="fins"  cellName="username"   >fins</td>


应该生成的源码为 cellName="userinfo.username"。
但是 property="username"处又不能为 property="userinfo.username"

48 楼 bubble 2007-02-09  
好东西啊
47 楼 fins 2007-02-02  
这个是支持的
ec: column有viewsAllowed viewsDenied属性
详细用法请参考ec原版本的官方文档
46 楼 dpdongdong 2007-02-02  
不局限于控件中显示的内容
45 楼 dpdongdong 2007-02-02  
关于数据的导出功能我提点建议:
    问题:在一些实际的应用中,表格中显示的内容只是客户最关心的这个对象的重要部分,而在数据导出的时候,可能需要的是这个对象的全部信息。
    建议:在数据导出的时候能不能自定义导出的数据字段。
44 楼 fins 2007-02-02  
先回答 ahau205109
"
这个我想不必要弄两份,把click事件改为change事件(不过onchange事件对不同的标签有稍微点不同)
"
这个我想过 但是 如果我从1 该成2 后来后悔了 又改会了1 那同样会被当作已修改的  要想真正做到完美,我想只有备份一份原始数据是最合适的吧
只是个人想法:)
改写你提的建议和 想法 我会考虑实现的
至于一些类似"某某功能如何实现的" 这个确实不好说啊
而且你也应该发现了 写字不是我擅长,代码里注释几乎没有
我觉得我说不明白:(


to oaer:
可以调用
limit的getCurrentRowsDisplayed
这个我会在下一个版本里封装一个方法的 否则取得limit还需要一定的编码
43 楼 loaer 2007-02-02  
在struts的action里面怎么读取由页面提交的每页显示的记录数?
42 楼 ahau205109 2007-02-02  
fins 写道
ahau205109 写道
下列功能什么时候实现呢?
1。锁定列
2。列间移动
3。单元格编辑
   从新的页面选择数据(可参考struts-layout那个表格编辑功能)
可能存在如下问题
1。增加和删除行
   这个我好象没有找到
2。导出的pdf文件格式打开不了
3。保存数据
   只要我双击过单元格就当成编辑 不太合理吧
   保存时能不能提供类似加载标志
4。通过指定模板来实现单元格编辑的内容
   感觉放到column做子标签更明朗


首先谢谢 ahau205109 的关注 和提出的中肯的建议和意见 谢谢了:)
下面我来解答一下ahau205109的一些问题:

需求 :
需求3已经实现  需求1 2会想办法实现
问题:
1 删除行功能有 demoOPOA那个例子就有
2 这个问题我没有遇到 能否详细描述一下该bug发生的原因?
3 如果想合理的判断编辑状态,我需要保留原始表格数据,也就是说,每个单元格的数据我都要弄两份,太费资源.
4 子标签绝对没有纯html代码灵活.
我不可能做这样一个子标签:可以通过传入不同的属性来实现所有的html代码的功能.
这种js模板技术其实是很好的,大家可能不太适应,但是带来的灵活易用性绝对要比标签好很多.


再次感谢ahau205109 !!! 谢谢:)


引用

    2 这个问题我没有遇到 能否详细描述一下该bug发生的原因?
  

这个原因还真不知道,pdf文件是导出了,也没有报错,但打开文件时候就告诉文件已经破坏
引用

  3 如果想合理的判断编辑状态,我需要保留原始表格数据,也就是说,每个单元格的数据我都要弄两份,太费资源.


这个我想不必要弄两份,把click事件改为change事件(不过onchange事件对不同的标签有稍微点不同)
引用

  4 子标签绝对没有纯html代码灵活.


这的确是个人喜好问题;

再提几个问题
用ec,有时候的确很尴尬;
第1不好改那分页的模式;
  还没有具体看ecsice source不知道现在是否支持翻页自定义
  例如  1 2 3 4 5 下一页
第2,如果想对查找到的数据显示做排列调整;比如
<tr><td rowspan="3">内容图片</td><td>one</td></tr>
<tr<td>two</td></tr>
<tr><td>three</td></tr>
还真不知道用ec要怎么用那些标签来实现,本来想找〈ec:table>跌代的时候的
声明的var="*" 里的对象,还没有找到,如果有就解决了;ecside要怎么获取呢?
   这个解决 pageContext.getAttribute("..."),但是能否直接在column标签
  增加colspan,rowspan ?
第3,编辑的时候行列样式的
   在编辑模式下,对add,delete,change的记录,是否可以指定不同的样式来展现
   对于已经编辑的(某条,非全部)记录,是否可以撤消编辑,对于已经删除的记录,
   是否可以恢复; [这些功能应该都比较好实现吧,实现这个目的主要是因为如果记录多,
   操作的时候,难免会出错]
第4,查询
   昨天看到一个直接在页面查询表格数据,就能将满足的数据高亮显示的功能,感觉还不错


41 楼 loaer 2007-02-02  
哦,可以了,是没加过滤器,不过我看到这样eXtremeExport的名字
以为这个过滤器是用于功能导能的。
40 楼 fins 2007-02-01  
加入必要的过滤器了吗?
39 楼 loaer 2007-02-01  
为什么我点下一页后页面的信息不变化,而且有出现正在提交,但不会消失,后台有接收到点下一页后通过ajax提交的信息的。而且后台没什么错误,我是用struts返回list的。
38 楼 mingshg 2007-02-01  
开发继续要?那位能把下载的给我发一份,邮箱:mingshg@sohu.com,十分感谢
37 楼 mingshg 2007-02-01  
为什么下载不了呀?那位能下载呀?
36 楼 lformat 2007-01-31  
fins 写道
明下午会发布 1.1 rc2 修正easyList的一些bug 还有ecside基础功能的一些小bug
同时增加复杂表头的设置 和 导出.

截图见 2楼


导出复杂表头这个功能是很激动人心的!
35 楼 fins 2007-01-31  
明下午会发布 1.1 rc2 修正easyList的一些bug 还有ecside基础功能的一些小bug
同时增加复杂表头的设置 和 导出.

截图见 2楼
34 楼 fins 2007-01-31  
当然包含了
你用一下就知道了 呵呵

相关推荐

    ECSide最新文档

    - **组件介绍**:ECSide是一个开源的列表组件,源自eXtremeComponents,但已独立发展。 - **实现功能**: - 批量增加、批量修改、批量删除 - 使用ECSide组件实现列表分页、排序、查询及修改列宽等功能 - 通过页面...

    分页组件ECSIDE文档

    该组件源于**eXtremeComponents**,一个知名的开源列表组件,但在后续发展中逐渐独立出来,形成了自身独特的特性与优势。 **1.1 项目模块组成** ECSIDE项目集成了**JSP列表组件**,不仅支持基本的列表展示,还涵盖...

    eXtremeComponents组件

    "eXtremeComponents组件"是一组用于软件开发的组件,尤其在创建高效、功能丰富的用户界面时,这些组件能够极大地提升开发效率和用户体验。eXtremeComponents通常包括一系列的列表控件和其他UI元素,它们设计精良,...

    eXtremeComponents详解

    eXtremeComponents(简称EC)是一款专为Java开发者设计的开源组件库,它提供了一系列强大的列表展示组件,适用于构建数据密集型的应用程序。EC的核心特性包括支持分页显示、数据导出到Excel和PDF等格式,极大地提升...

    分页组件extremeComponents的使用

    **分页组件Extreme Components在Java开发中的应用** 在Java Web开发中,数据量庞大的时候,一次性加载所有数据不仅效率低下,也会对用户界面造成压力。这时,分页组件就显得尤为重要。Extreme Components(简称XC)...

    eXtremeComponents介绍

    1. **简单易用**:ecside的API设计简洁,学习曲线较平缓,使得开发者能快速上手。 2. **高性能**:通过优化的数据绑定和缓存策略,ecside在处理大量数据时表现出良好的性能。 3. **灵活性**:ecside支持自定义模板...

    ecside 文 档

    - **概念**:Ecside是一个用于生成列表的JSP标签库,它通过简单的配置和调用,可以轻松地实现复杂列表的展示和操作。 - **工作原理**:开发者需要将待显示的数据集合放入请求上下文(request、pagecontext或session...

    ECSide文档.pdf

    ECSide,全称为Extreme Components Side,是一个开源的JSP列表组件,源于eXtremeComponents项目,但已独立发展并拥有自己的特色。这个组件专注于提供列表的显示功能,同时支持单表操作,如增、删、改、查。ECSide以...

    ECSide开发教程使用手册.pdf

    - **定义与来源**:ECSide是一款用于Web程序开发的开源列表组件。它最初源于著名的开源列表组件eXtremeComponents([官方网站](http://www.extremecomponents.org)),但现在已经独立发展,虽然仍保留了大量来自...

    eXtremeComponents

    ### eXtremeComponents知识点详解 #### 一、概述 **eXtremeComponents** 是一系列开放源代码的 JSP 定制标签库,旨在帮助开发者轻松创建高级且功能丰富的表格展示界面。这些标签提供了丰富的功能,如图像显示、...

    ecside有关jar文件

    ECSide是一个基于jsp tag的开源列表组件. 他源自著名开源列表组件 eXtremeComponents (http://www.extremecomponents.org), 但现在已经脱离eXtremeComponents,独立发展(仍有大量代码来自 eXtremeComponents)。 ...

    extremecomponents

    1. **组件配置**:了解如何在XML配置文件或Java代码中声明和配置extremecomponents的列表控件,包括设置数据源、定义列宽、设定排序规则等。 2. **数据绑定**:学习如何将后端数据模型与列表控件绑定,这可能涉及到...

    eXtremeComponents-1.0.4.zip

    1. `items`:定义表格的数据源,通常是一个列表或集合。 2. `var`:定义一个变量名,用于在表格内部访问当前行的数据。 3. `columns`:定义表格的列,可以通过子标签`&lt;ec:column&gt;`来设置列头文本、字段映射等。 4. `...

    eXtremeComponents学习总结

    【eXtremeComponents学习总结】 eXtremeComponents(ec)是一套强大的开源JSP定制标签库,专为提供高级数据显示而设计。核心组件eXtremeTable用于以表格形式展示数据,适用于需要动态、高效展示大量信息的Web应用...

    eXtremeComponents-1.0.2-M1.zip_COMPONENT_extremecomponents_extre

    标题中的"eXtremeComponents-1.0.2-M1.zip_COMPONENT_extremecomponents_extre"提到了一个名为eXtremeComponents的组件库,它是一个特定版本(1.0.2-M1)的软件包,可能包含了用于开发的控件或组件。...

    eXtremeComponents-1.0.1.jar

    eXtremeComponents组件,导出Excel或pdf文件的jar包

    eXtremeComponents列表组件(下)

    视频第六部分共六部分, 下载全才可以解压 博文链接:https://dlivan.iteye.com/blog/116630

Global site tag (gtag.js) - Google Analytics