`

[2007-01-21 18时发布]ecside 1.0rc1: 列表组件eXtremeComponents全面增强版

阅读更多


ecside介绍:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

作者: fins ( name: Wei Zijun    email:fins@163.com   blog:http://fins.iteye.com )

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


ecside发布地址:
http://fins.iteye.com/blog/40190

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


其他出色的列表组件(有些是收费的):
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 )

 ~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
主要增强的功能:
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翻页
25 支持预查询功能,在察看第n页的时候,把n+1页的数据也查询出来(隐藏着)备用,加快查看下一页的速度
26 将导出excel所使用的组件由poi切换成了 jxl
27 xls导出方式修改 原始的导出是导出的vo/map里的原始数值 现在是导出页面实际显示的内容
28 增加简捷导出方式 (通过ec:table的 xlsFileName pdfFileName csvFileName属性)
29 支持pdf中文导出
30 代码进行了大规模的重构
31 增加了很多ajax相关特性
32 实现了可编辑列表功能 以及cell的映射功能
... ...


更新日志:
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
新增加的特性通常都在 demo.do.jsp这个例子里进行演示。

===============================
2007-01-21 15点
===============================
对于以下更新,demo.do.jsp进行了修改,大家看看例子可能会更好理解.

1) 实现了cell的映射功能(详见示例的性别 和 角色列),用法:
了一个简单的小标签 用来从map生成 select的option列表。
<ec:options tagattributes="附加的html属性" defaultkey="默认选中的option的value" items="MAP在context内的key"></ec:options>

xml 代码
  1. <ec:column mappingItem="用来映射的MAP在context内的key" mappingDefaultValue="当找不到映射值时要使用的默认值".../>  

例如,在示例中,角色的信息以 “标识--名称”的形式放到了一个 map内
在action中 把这个map放到了 request.setAttribute("USERROLE_MAP", CommonDictionary.USERROLE);内
在页面使用

xml 代码
  1. <ec:column property="USERROLE" title="角色" mappingItem="USERROLE_MAP" mappingDefaultValue="[错误的角色]"/>  


就会自动将名称显示出来。
2) 做

xml 代码
  1. <ec:options items="MAP在context内的key" defaultKey="默认选中的option的value" tagAttributes="附加的html属性"/>  


3) 对ec:extend标签做了扩充,增加了位置设置属性 location
top: form内列表主体前  ; bottom : form内列表主体后 
toolbar或不设置location属性  在toolbar的扩展位置.
4) 代码进行了一点点修改,对使用没有影响。

===============================
2007-01-20 9点   ECSIDE 1.0 RC1 发布啦
===============================
沉寂两天,但一直没有闲着,带来了大变化 索性来个 1.0 RC1 版 :) 。
1) 实现了灵活的可定制的“可编辑列表”功能 (详见help.txt 200行左右的描述 以及示例)
支持多种编辑方式(文本框 下拉框 将来还会支持更多),可自定义模版(使用自定义的文本框 下拉框),还提供了:
对可编辑列进行标识,对编辑过的cell进行标识(默认为改变单元格背景色),
使用ajax技术提交后台,提交成功的cell将清除编辑标识 等贴心设计。
2) 增加了 高亮显示选中行的功能,使用 ec:table属性: selectlightRow="true"
3) 去掉了 fullnavigation导航条,将其与navigation导航条合并
改为为ec:table增加属性 nearPageNum="数字" 用来设置导航条前后显示的邻近页数 等于0时 为不使用邻近页。
4) 为ec:table增加了 maxRowsExported="数字" 属性,用来限制导出大最大条数, 如果数据超过这个数目,则不执行导出操作。
5) 为之前增加的ec:table的pageSizeList属性 增加了特性
pageSizeList="max:200,10,15,30,50,100,all" 如果 10--100以及all中,某一项大过了max的200则 不在列表中显示。
也可以只使用pageSizeList="max:200" 此时将 使用默认设置,并进行max控制。
6) 解决了pdf中文编码问题,终于支持pdf导出了
7) 恢复了对sitemesh的支持,用法见原版ec文档(我没有亲自没有测试,因为我不会用sitemesh :( )。
8) Ajax翻页优化,同时增加了 ECSide.findAjaxZoneAtClien 属性,可设置 客户端 还是 服务端进行 html代码剪裁
默认推荐使用 服务器端。
9) 再次对js和java代码进行了较大规模的重构,清理了一些无用代码,添加了必要的协议信息。
10) 一些细节的修改(例如对滚轮的支持更自然,filterable="true"手动调节列宽功能屏蔽等)
还有对一些小bug的修正,但是由于变化较大,肯定还会带来一些新bug。
11) 整个示例的应用逐步发展为 ecside 的最佳实践,加入了hsqldb(hsqldb的使用参考了springside),全新的例子。
当然还不够好 会在以后的日子里继续完善。
12) 做了一个简单的logo :)。

顺便问一下:
我使用了 springside 的 HsqlListener (做了些修改 但绝对不涉及到核心),为什么在每次重启应用的时候总是包下面的异常呢??
Exception in thread "HSQLDB Timer @15d63da" java.lang.NullPointerException
 at org.hsqldb.lib.HsqlTimer.nextTask(Unknown Source)
 at org.hsqldb.lib.HsqlTimer$TaskRunner.run(Unknown Source)
 at java.lang.Thread.run(Unknown Source)

===============================
2007-01-16 14点
===============================
1) 当使用“列表内部滚动条”时,可以使用百分比来设置列表的宽度了。
(但还是建议您使用像素(px)作为列表和列的宽度单位,因为百分还有一些小bug)
还有个建议 不管是使用什么样的宽度,建议都要使用一个“自动宽度”的column,
就是说不要给所有的ec:column都指定width,给其中一个点“自由”,这样很多已知的关于列宽调整的问题都可以解决。
2) 对eccn.js进行了大量的修改,提供了更好(但不完美)的IE和FF兼容(一致)性(这个工作差点把我累吐血).
ff和ie 在取得对象坐标和宽度的算法不同 太郁闷了
3) 修正了一些bug


===============================
2007-01-12 以及之前的一些更新日志
===============================
1) 为“列表内部滚动条”增加了对鼠标滚轮的支持(只在ie6和ff2下测试过,其他版本没有测试)
2) 将部分“列表内部滚动条”相关的代码从java中提出,改用js实现.
3) 对js文件做了一些调整。
4) 修正了一些小bug。

===============================
1) 修正了一个“列表内部滚动条”的bug
该bug表现为在 IE里 有些windows的主题下,纵向滚动条不可用。FT!!!!!
2) eccn.js做了一点小小的改动,为将来做过编码支持打下了一点点基础.

===============================
1) 修正了改变页面大小时“列表内部滚动条”错乱的bug
2) 重构了“列表内部滚动条”相关的js和java代码

===============================
1) 修正了使用ajax翻页时“列表内部滚动条”错乱的bug
2) 增加了当列表内容的实际宽度和高度小于设置的宽度和高度的时候,
   自动调整区域大小,同时自动隐藏滚动条(只隐藏横向的)的功能。

===============================
增加了“固定列表头,滚动列表体”(“列表内部滚动条”)的功能
这个功能实现起来比我一开始想像的复杂
不是简单的使用一个 div overflow:scroll就可以搞定的
虽然功能是支持了 但是代码肯定还有很多bug或者是可以改进的地方
欢迎大家积极的提出宝贵的意见 谢谢了

使用方法:
ec:table标签内 增加
listHeight="数字" 属性 (指定列表体的高度)
同时把要指定 width="数字" 不能省略 同时要使用绝对大小 而不要使用百分比

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

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

~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~
~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~~

我们有自己的圈子了
以后大家有 ecside相关的问题 可以去圈子里
我的 blog里问( http://fins.iteye.com/blog/48723 ) 
别在发消息了 因为发消息别人看不到 而有些问题可能别人也遇到过 或者是我回答的不对 别人也可以帮忙
对吧?
谢谢大家

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

 

我申请了javascud项目 而且也申请了svn 但是不会用啊  :'( 谁来教教我啊

 

 依赖包已经上传到 圈子的共享空间里了

共3个 请解压缩后放到 WEB-INF/lib下 如果不导出pdf可以不下载pdf相关的包 和 字体文件 这两个比较大  

  • ecside_1.0_rc1_20070121b.zip (697.6 KB)
  • 描述: 完整版,但不包括所依赖的WEB-INF/lib下的文件.依赖文件可以去圈子里下载, 也可以去javaeye ftp下载,也可以按照WEB-INF/lib下的filelist.txt文件所列,自行下载.
  • 下载次数: 3289
分享到:
评论
39 楼 ll_2046 2006-12-31  
关注ing,真的不错,感谢
38 楼 poiuyt373 2006-12-31  
也搞个项目算了
37 楼 fins 2006-12-31  
测试组太厉害了

在他们的帮助和建议下 今天下午
这个ecside又发生了很多变化啊 呵呵
元旦回来后争取再给大家发一版

同时检讨一下自己的粗心
现在放上来的这个版本里有很多很明显的bug啊
:'(
36 楼 fins 2006-12-31  
依然是全部导出
35 楼 highriver 2006-12-31  
请问一下,如果使用了limit后,导出excel时,会只导当前页的呢,还是会导出全部呢。
34 楼 linux.sir 2006-12-31  
现在的项目正在使用
33 楼 fins 2006-12-31  
由于ie和ff对node的定义不同
会导致
"var oCheckbox = this.childNodes[0].childNodes[0];   "
这句不总是有效啊
建议用 trObject.getElementsByTagName("input")来找checkBox
32 楼 firedragon 2006-12-31  
fins 写道
hql_lims 写道
另外我希望实现点击每行后,前边的CHECKBOX自动选择或取消,如何定制实现?

可以在 ec:row 上加入 onclick事件 调用实现该功能的函数

这个可以自己写 不是太难





这个问题我是用javascript来实现的,因为用到的地方不多。但是如果用得多还是写代码实现比较好

function init()
	{
		var table_node = document.getElementById("usersTableId_table");
		var tbody_node = table_node.childNodes[1];
		var tr_node = tbody_node.rows;
		for (var i = 0; i < tr_node.length; i++)
		{
	
			var oTr = tr_node[i];
			oTr.ondblclick = function ()
			{	
				var oCheckbox = this.childNodes[0].childNodes[0];
				oCheckbox.checked =!oCheckbox.checked;
				
				if(oCheckbox.checked)
			 	 {
			 	    oCheckbox.parentElement.parentElement.style.backgroundColor="#66CCFF";
			 	 }
			 	 else
			 	 {
			 	 	oCheckbox.parentElement.parentElement.style.backgroundColor="";
			 	 }
		 	 }
		 	 
		}
	}



然后在页面初始化
<script type="text/javascript">
    init();
   </script>
31 楼 fins 2006-12-31  
hql_lims 写道
另外我希望实现点击每行后,前边的CHECKBOX自动选择或取消,如何定制实现?

可以在 ec:row 上加入 onclick事件 调用实现该功能的函数

这个可以自己写 不是太难



30 楼 fins 2006-12-31  
1 带"过滤框"支持调整列宽 按楼上的方法确实可以实现,只是我在考虑另外的方法,因为我觉得把过滤放到表头下面不太符合习惯
其实 过滤\导出pdf\排序 这些功能由于我们现在的项目不使用 再加上我时间比较紧 所以还没有在这3个点上花经历来改造扩充 所以这3个部分可能还很难让大家满意 不过我有时间一定会尽快解决的

2 数据库分叶需要修改
extremetable.properties 或者 指定 ec:table的limit属性
这个可以详见 ectable的官方wiki(有中文版)
设置完后 需要在你的action/servlet里做一些工作
做这些工作的目的 是可以让你取得要显示的纪录的 起止行数
至于真正的去查数据  还要你自己写 sql 并且把起止行数传进去
29 楼 hql_lims 2006-12-30  
另外我希望实现点击每行后,前边的CHECKBOX自动选择或取消,如何定制实现?
28 楼 hql_lims 2006-12-30  
我这两天仔细看了下,非常不错,我决定用这个与dhtmlxGrid结合起来使用.

关于过滤时候不能调整列宽: 只要把过滤行置于表头下面就可以了,不过在IE里面输入框不能自适应宽度变化,而在fireFox则可以

刚接触这个EC,不知道如何支持数据库分页机制,以及如何定制自己的翻页导航? 还请赐教
27 楼 fins 2006-12-30  
收到! 马上更正


更正了这个bug

顺便又改了些地方

等再多点特性一起发上来吧
26 楼 zyy2006 2006-12-30  
搂主,请问那个checkbox 好像不能支持disabled属性呀
25 楼 Cecily 2006-12-29  
明白了 我上次下载的包是包含test1.jsp的包 可能需要进一步部署 现在包含demo1.jsp和demo2.jsp的包是没有问题的 ,不需要部署直接可以运行 ,厉害的 ,学习ing .支持你啊!!
24 楼 fj_opensky 2006-12-29  
谢谢你的辛苦工作,学习一下。
23 楼 Cecily 2006-12-29  
我下载运行的时候报了一个错误
org.apache.jasper.JasperException: /test.jsp(74,1) Unable to load tag handler class "org.tdeccn.table.tag.TDTableTag" for tag "ec:table" 能不能帮我看一下  是 什么问题啊 ?是不是少包啊
22 楼 caryl 2006-12-26  
支持支持!!!能不能做成双击直接编辑的?像dhtmlxgrid,那样就前途无量啊。。。
21 楼 fins 2006-12-26  
可以的 修改limit
我们的实际项目也是数据库分页的
但是具体的sql之类的要自己写
我有个action的例子 一会发上来哈


将 retrieveRowsCallback 设置为 limit
可以设置 ec:table的属性
也可以修改 extremetable.properties文件
具体修改方法和 ec原先是一样的


附件是实例action 我写了几个简单的工具方法


20 楼 wlghd 2006-12-25  
刚下了!很不错的东东!不知道分页是否可以想EC一样从数据库层分页?

相关推荐

    ECSide最新文档

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

    eXtremeComponents组件

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

    eXtremeComponents详解

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

    分页组件ECSIDE文档

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

    eXtremeComponents介绍

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

    分页组件extremeComponents的使用

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

    ECSide文档.pdf

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

    ecside 文 档

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

    extremecomponents

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

    ECSide开发教程使用手册.pdf

    - **特点**:ECSide支持列表的分页、排序、查询等功能,并且具备良好的性能,即使在处理大量数据时也能保持高效的响应速度。 #### 二、ECSide组件功能详解 - **批量操作**:支持批量增加、批量修改和批量删除记录。...

    eXtremeComponents-1.0.4.zip

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

    ecside有关jar文件

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

    eXtremeComponents

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

    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

    eXtremeComponents-1.0.1+中文API___分页工具

    **eXtremeComponents-1.0.1+中文API 分页工具详解** 在软件开发中,尤其是在处理大量数据时,分页功能是必不可少的。它使得用户可以更有效地浏览和管理信息,避免一次性加载过多内容导致的性能问题。本文将深入探讨...

    eXtremeComponents学习总结

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

Global site tag (gtag.js) - Google Analytics