`
laotu5i0
  • 浏览: 143668 次
  • 性别: Icon_minigender_1
  • 来自: 上海
社区版块
存档分类
最新评论

eXtremeComponents的eXtremeTable分页特性

    博客分类:
  • java
阅读更多

下面是我使用的例子:


<ec:table items="users" var="user" action="" imagePath="${ctx}/widgets/extremecomponents/images/table/zh_CN/*.gif" cellpadding="1" title="用户名" 
 locale
="zh_CN" rowsDisplayed="10"> 
     
<ec:exportXls fileName="UserList.xls" tooltip="Export Excel"/>
     
<ec:exportPdf fileName="UserList.pdf" tooltip="输出PDF文件" headerColor="blue" headerBackgroundColor="blue" headerTitle="人员表"/> 
   
<ec:exportCsv fileName="UserList.txt" tooltip="输出CSV文件" delimiter="|"/> 

   
<ec:row>
    
<ec:column property="rowcount" cell="rowCount" sortable="false" title=" No." width="50"/>
    
<ec:column property="username" title="姓 名" width="200"/>
    
<ec:column property="firstName"  title="firstName" width="200"/>
    
<ec:column property="lastName"  title="lastName" width="200"/>
   
</ec:row>
  
</ec:table>

Action

import java.util.List;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
import org.apache.struts.action.ActionForm;
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import com.ygsoft.propertyright.service.UserManager;
import com.ygsoft.propertyright.webapp.util.BeanUtil;

public class TestAction extends BaseAction ...{
    UserManager userManager 
= (UserManager)BeanUtil.getBean("userManager");
    
    
public ActionForward testPage(ActionMapping mapping, ActionForm form, 
            HttpServletRequest request, HttpServletResponse response) 
throws Exception ...{
        List users 
= getUsers();
        request.setAttribute(
"users", users);
        
return mapping.findForward("test");
    }


    
public List getUsers() throws Exception ...{
                 
return userManager.getUsers(null);    
                     }

}

              其中ecoAttrs是一个collection(List),放入pojo。action里面写你这个页面的访问方法(如我的页面是一个action,其他的如.do或者.jsp什么的都可以)。rowsDisplayed是默认显示条数,它可以自动实现分页。
下面的三个<ec:export>是导出三种格式用的,不用的话可以不写(写了需要在web.xml配置相应的filter)。
<ec:column>里面放属性,property指向pojo的相应属性,而title是表头显示的信息,这个标签需要用<ec:row>包起来(1.0.1 m4以后)

这里有一套中文图标:
http://tiny.51.net/extremecomponent/zh_CN.rar

web.xml配置

<filter> 
     
<filter-name>eXtremeExport</filter-name> 
    
<filter-class> org.extremecomponents.table.filter.ExportFilter </filter-class> 
</filter> 

<!-- 输出excel,pdf,csv的时候用 -->
<filter-mapping> 
<filter-name>eXtremeExport</filter-name> 
<url-pattern>/*</url-pattern> 
</filter-mapping> 


<!-- 其实这个配置可不要,已经在放在jar里面了loading的时候自动会加进来- -->
<taglib> 
<taglib-uri>/extremecomponents</taglib-uri> 
<taglib-location>/WEB-INF/tld/extremecomponents.tld</taglib-location>
<!--tld拷贝到相应目录去-> 
</taglib> 

中文问题

export里面的excel和pdf默认不支持中文,需要手工修改源码,excel的比较简单:
修改org.extremecomponents.table.view.XlsView.java(我指的是1.0.1-M4-A14的相应代码)
102行:
HSSFCell hssfCell = hssfRow.createCell(cellnum);
hssfCell.setEncoding(HSSFCell.ENCODING_UTF_16);(就是添加这一行)
122行:
HSSFCell cell = row.createCell(cellnum);
cell.setEncoding(HSSFCell.ENCODING_UTF_16);(就是添加这一行)
这个在使用UTF-8时工作正常。如果其他Unicode环境可以尝试HSSFCell.ENCODING_COMdivSSED_UNICODE。

编译后将对应.class放到WEB-INF/classes相应目录就可以了。

pdf view的比较麻烦,还没尝试,解决方法参照这个帖子:
http://extremecomponents.org/forum/viewtopic.php?t=139&highlight=chinese+filter
http://www-128.ibm.com/developerworks/cn/xml/x-ospdf/index.html

以使用Struts为例,说明一下如何使用eXtremeTable的分页特性

 

   这一切都可以在Action中完成,在Action会用到JSP中eXtremeTable的table标签的属性'tableId' 和'item','tableId'用于完成eXtremeTable的分页,'item'用于返回你分页的结果集,不多不少,刚好是你需要查看的那一页的结果集,比如说,你一页是10条记录,那你访问第20页的时候,'item'的结果集就只有第201条到第210条记录.还有就是在request中加入totalRows的属性,表示本次查询结果的数量

另外,JSP的中,eXtremeTable的table标签要retrieveRowsCallback属性,将该属性设为 org.extremecomponents.table.callback.LimitCallback,这是它默认的分页回调类,你也可以写自已的回调类.设置了该默认的回调类以后,你在Action里就需要向request加入totalRows属性,值为你的查询结果总记录数,这样才会产生翻页的效果.

现在就你的DisplayAction中加分页的特性了,如下:

Limit limit = LimitFactory.createInstanceOfLimit(request, TABLEID);
LimitFactory.setLimitPageAndRowAttr(limit,PAGE_SIZE,TOTAL_SIZE);

这里的TABLEID就是JSP页上标签的属性tableId, PAGE_SIZE是你一页的记录数,TOTAL_SIZE是你查询数据的总数

然后设置totalRow属性,它的值被要求为Integer类型的,转换一下:

request.setAttribute("totalRows",new Integer(TOTAL_SIZE));

将分页后的结果集(一页的内容)放到request的resultList(此为JSP中item属性设置的值)属性中去:

request.setAttribute("resultList", getTestData(limit.getCurrentRowsDisplayed(),limit.getPage()));

上面得到分页数据的函数原形为getTestData(int pageSize,int paget),通过指定一页的记录数和第几页来获得所需的数据,这可以根据数据库的分页特性,或者通过滑动游标的方式来得到,这里不再傲述.

以下为部分代码:

JSP部分:

<ec:table
 
items="resultList" var="item" tableId="youTableId"
        retrieveRowsCallback
="org.extremecomponents.table.callback.LimitCallback"
        filterRowsCallback
="org.extremecomponents.table.callback.LimitCallback"
        sortRowsCallback
="org.extremecomponents.table.callback.LimitCallback"
 action
="${pageContext.request.contextPath}/DisplayAction.do"
 imagePath
="${pageContext.request.contextPath}/images/table/*.gif"
 title
="TEST"
 width
="100%"
 rowsDisplayed
="10"
        sortable
="false"
        filterable
="false"
 
>
        
<ec:column property="name" title="姓名"/>
        
<ec:column property="nickName" title="别名"/>
</ec:table>

 

Action部分代码:

Limit limit = LimitFactory.createInstanceOfLimit(request, TABLEID);
LimitFactory.setLimitFilterAndSortAttr(limit);
LimitFactory.setLimitPageAndRowAttr(limit,PAGE_SIZE,TOTAL_SIZE);
request.setAttribute(
"resultList",getTestData(limit.getCurrentRowsDisplayed(),limit.getPage()));
request.setAttribute(
"totalRows",new Integer(TOTAL_SIZE));

,标签里的rowDisplayed属性要和Action中的PAGE_SIZE一致,不然会有问题...

其他资源
extremecomponents 用AJAX:
http://extremecomponents.org/wiki/index.php/AJAX_enabled_eXtremeTable_Tutorial
extremecomponents Group:
http://groups.google.com:80/group/eXtremeComponents_CN
资源
http://www.blogjava.net:80/lucky/category/7508.html
官方网站
http://www.extremecomponents.org




本文来源:http://blog.csdn.net/GOALSTAR/archive/2007/07/27/1711822.aspx

分享到:
评论

相关推荐

    eXtremeComponents控件分页导出数据Demo.rar

    除了基础功能外,eXtremeComponents控件还提供了许多高级特性,如自定义分页样式、动态加载、多级分页等,可以根据项目需求进行选择和配置。在实际应用中,开发者还需要关注性能优化,比如使用虚拟化技术减少内存...

    利用eXtremeComponents标签来实现分页实例

    本教程将详细介绍如何利用eXtremeComponents(XC)标签库中的组件来实现一个分页实例。eXtremeComponents是一个强大的JavaServer Faces (JSF)组件库,提供了丰富的UI元素,包括用于分页的组件。 首先,我们需要了解...

    eXtremeComponents ( 开源 分页工具)

    **eXtremeComponents开源分页工具详解** 在IT领域,高效的数据管理是任何应用程序的基础。当处理大量数据时,分页技术变得至关重要,因为它能够提高用户体验,避免一次性加载过多数据导致的性能问题。...

    eXtremeComponents-1.0.4+extremetable使用手册+需要的jar包

    eXtremeTable分页控件完整例子包括了数据的分页、数据的Excel格式导出、数据的pdf电子书格式导出、数据的文本文件格式导出等功能,里面的源代码写得非常详细,好好看一下.... 功能强大,易于扩展的extremetable就是个...

    分页组件extremeComponents的使用

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

    eXtremeComponents-1.0.1+中文API___分页工具

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

    eXtremeComponents-1.0.4.zip

    eXtremeComponents 是一个功能强大的组件库,尤其以其在JSP中的extremetable标签而闻名,它提供了一种类似于displaytag的便捷方式来处理表格展示,极大地提高了开发效率和用户体验。本文将深入探讨eXtremeComponents...

    eXtremeComponents简明手册

    eXtremeTable是eXtremeComponents中的一个核心组件,用于展示数据列表。其主要特点包括但不限于: - **高度可配置性**:用户可以根据需求自定义表格的各项属性。 - **灵活性**:支持多种数据源,如数据库查询结果、...

    extremecomponents

    在extremecomponents库中,可能包括如DataGrid、ListView或者TreeGrid等控件,它们能够以表格、列表或树形结构展示数据,并支持排序、分页、过滤等功能。 在Java环境中,我们通常会使用JavaServer Faces (JSF) 或 ...

    eXtremeComponents-1.0.2-M1.zip_COMPONENT_extremecomponents_extre

    "分页查询"再次强调了这个组件库的核心特性,即支持分页数据展示。 从压缩包子文件的文件名称列表来看,有两个文件:www.pudn.com.txt可能是一个文档,来源于网站pudn.com,这个网站通常分享各种编程资源和技术文章...

    eXtremeComponents

    eXtremeComponents控件指南

    eXtremeComponents详解

    EC的核心特性包括支持分页显示、数据导出到Excel和PDF等格式,极大地提升了开发效率和用户体验。 ### 一、eXtremeComponents概述 eXtremeComponents由一系列相互协作的Java组件组成,主要服务于数据展示和交互。...

    eXtremeComponents组件

    "extreme 列表组件"是eXtremeComponents中的核心部分,它通常指的是能够高效处理大量数据,并提供动态排序、筛选、分页等功能的列表视图。这类组件对于数据密集型应用,如数据分析工具、数据库管理软件或者任何需要...

    eXtremeComponents详尽文档包

    此文档可能会讨论表格的列定义、排序、过滤、分页等功能,以及如何处理数据模型和事件监听器,以实现动态数据更新和用户交互。 4. **EC标签总结.pdf** 标签可能是指EC中的标签组件或者其他与标记和分类相关的功能...

    eXtremeTable参考文档.pdf

    1. **高度自定义**:eXtremeTable支持多种样式和布局定制,开发者可以根据需求调整表格的外观和行为,如行和列的排序、过滤、分页等。 2. **数据绑定**:它能够与各种数据源进行绑定,包括数据库查询结果、Java集合...

    eXtremeComponents介绍

    1. **表格组件**:EC提供了高度可定制的表格组件,支持大数据量的展示,具有排序、分页、过滤等功能,并且可以方便地与后台数据库进行交互。 2. **表单组件**:包括各种输入控件,如文本框、下拉列表、日期选择器等...

    extremecomponents 包

    extremecomponents 包

    extremeComponents中文文档

    为了确保在大量数据或复杂交互场景下的高性能,文档还会讲解如何优化组件的性能,如延迟加载、分页策略和虚拟滚动等技术。 7. **国际化与多语言支持** 作为一套全球化的组件库,extremeComponents 提供了多语言...

Global site tag (gtag.js) - Google Analytics