老牛分享使用TablePager组件开发数据展示
之前体验过simple开发新增后, 已经熟悉了simple的开发思路,开发新增使用 validation(验证组件),calendar(日期),ajaxRequest? (ajax组件)三个组件,完成了表单数据按照业务规则的要求提交后台持久化到数据库,完成新增功能,使用任何框架都能实现,但是当业务发生变动后,使用simple开发的新增维护成本就很低,在新增功能开发完成后,项目经理就提出几点改进需求,比如解决对指定字段通过指定表查询数据,并以字典的形式显示,使用simple完成该功能,只需要多声明一个组件配置查询sql就可以完成工作,无论是稳定性还是开发效率都是可以保证的,以后单独与大家分享。
今天展示使用TablePager组件完成数据的展示。
如果你对Simple 的?TablePager 组件还不熟悉,建议先阅读 Pager、TablePager、GroupTablePager 组件介绍,根据项目要求,完成数据展示需要完成如下功能:
??? 1)统一的展现样式
??? 2)对每个字段进行排序
??? 3)页面展现字段支持自定义配置
??? 4)支持excel导出
??? 5)开发效率高
开发步骤:
1)声明组件,本例贴出所有代码
<?xml version="1.0" encoding="UTF-8"?>
<page xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
? xsi:noNamespaceSchemaLocation="/xsd/default/simple.xsd">
? <scriptEval>first</scriptEval>
? <importPage>
??? <value>/template/t.xml</value>
? </importPage>
? <components>
???? ??? ?<tablePager name="testTablePager" containerId="testTablePager "? pagerBarLayout="bottom"
?? ??? ??? ?handlepageItems="5"? csvExportAction="false">
?? ?
?? ??? ??? ?<columns>
?? ??? ??? ??? ?<column columnText="车牌号"? columnName="cph" separator="true"?????????????????????????????????????????????????????????????? headerStyle="width: 15%" style="width: 15%" />
?? ??? ??? ??? ?<column columnText="车辆名称"? columnName="clmc" separator="true"?????????????????????????????????????????????????????????????? headerStyle="width: 20%" style="width: 20%" />
?? ??? ??? ??? ?<column columnText="车辆类型"?? columnName="cx"? separator="true"?????????????????????????????????????????????????????????????? headerStyle="width: 15%" style="width: 15%"/>
?? ??? ??? ???? <column columnText="状态"? columnName="kr" separator="true"?????????????????????????????????????????????????????????????? headerStyle="width: 15%" style="width: 15%" />
?? ??? ??? ???? <column columnName="action" sort="false" separator="true"??????????????????????????????????????????????????????????????? style="text-align: center; width: 64px;"
?? ??? ??? ???? headerStyle="width: 64px;" columnText='操作' />
?? ??? ??? ?</columns>
?? ?
?? ??? ?</tablePager>
? </components>
</page>
2)实现业务Handle
??? 需要继承? AbstractTablePagerHandle,覆盖 createDataObjectQuery 接口.
??? 代码如下:
???? public class TestTablePagerHandle extends AbstractTablePagerHandle? {
??? @Override
?? ?public Object getBeanProperty(final ComponentParameter compParameter, final String beanProperty)
?? ??? ??? ?throws Exception {????? ? ?? ....
????? }??
????? @Override
?? ??? public IDataObjectQuery<?> createDataObjectQuery(final ComponentParameter compParameter)
?? ??? ??? ?throws Exception {?? ?
?? ??? ??? ?return DataObjectManagerFactory.getTableEntityManager(getApplication(),?????????????????????????????????????????????????????????????? new Table("tablename")).query(null);
?? ??? }
???? }
红色的就是需要写的代码,上面是查询所有数据,simple支持标准sql.
3)? 运行效果,这不是魔术,这是simple!
查看导出效果
?
总结:? 使用simple 开发查询是比较简单的,这里没有分享simple框架的机制,只是使用,后续与大家继续分享其它功能.