在eXtremeComponents组件里实现列的动态显示

eXtremeComponents动态列
本文介绍如何使用eXtremeComponents组件实现在查询结果集的动态列显示。通过自定义实现AutoGenerateColumns接口,可以自动根据查询结果生成列名。
http://boogie.iteye.com/blog/47999

在我开发的一个通用查询项目中想把查询结果集的显示部分采用eXtremeComponents组件来处理,但是碰到个问题,就是组件预先并不知道查询结果的列名,也就是必须解决Column列的动态显示问题。

有一种方法就是通过在jsp页面里罗列一下,但是总感觉不舒服,查文档发现eXtremeComponents有一接口AutoGenerateColumns可实现此功能,以下为具体实现步骤:

一、在应用的servlet(或struts action等)里(如sqlAction.do)实现根据SQL语句的运行结果获取字段名称列表(fieldnames)和查询结果集(results)并将其放入httpRequest的属性中

List fieldnames = 实现[获取字段名称列表]方法;
List results = 实现[获取查询结果集]方法;
httpRequest.setAttribute("fieldnames", fieldnames);
httpRequest.setAttribute("results", results);


results将作为eXtremeTable组件中属性items的值,fieldnames将用来迭代构造Column对象

二、编写类AutoGenerateColumnsImpl实现org.extremecomponents.table.core.AutoGenerateColumns接口

package org.boogie.sql.common.ec;

import java.util.Iterator;
import java.util.List;

import org.extremecomponents.table.bean.Column;
import org.extremecomponents.table.core.AutoGenerateColumns;
import org.extremecomponents.table.core.TableModel;

public class AutoGenerateColumnsImpl implements AutoGenerateColumns {

public void addColumns(TableModel model) {
List fieldnames = (List) model.getContext().getRequestAttribute(
"fieldnames");
Iterator iterator = fieldnames.iterator();
while (iterator.hasNext()) {
String fieldname = (String) iterator.next();
Column column = model.getColumnInstance();
column.setProperty(fieldname);
// column.setCell((String) columnToAdd.get(CELL));
model.getColumnHandler().addAutoGenerateColumn(column);
}
}
}


AutoGenerateColumns接口只有一个方法addColumns供实现,在此方法中通过传入的TableModel型参数model可从其Context中获取到httpRequest中的fieldnames属性值,然后根据fieldnames列表迭代构造对应Column后添加到model中

三、在显示页文件的eXtremeTable中,配置TableTag的属性items值为results,配置ColumnTag的属性autoGenerateColumns值为类AutoGenerateColumnsImpl的全路径

<ec:table 
items="results"
var="result"
action="${pageContext.request.contextPath}/sqlAction.do"
imagePath="${pageContext.request.contextPath}/images/table/*.gif"
title="查询结果"
width="100%"
rowsDisplayed="5"
>
<ec:parameter name="method" value="ec"/>
<ec:row>
<ec:columns autoGenerateColumns="org.boogie.sql.common.ec.AutoGenerateColumnsImpl"/>
</ec:row>
</ec:table>
【源码免费下载链接】:https://renmaiwang.cn/s/dr27a 编程环境设置如下: 1. 操作系统:Windows XP SP2 开发语言:C++ / MFC 编译环境:MS Visual C++6.0 参数配置分为三部分: - 第一参数为接收窗口大小控制,由于帧序号采用四位编码方式,因此其设定范围限定在1至8之间。其中设置为1时将采用后退N帧的滑动窗口协议机制;当大于1时则采用选择性重传策略的滑动窗口协议。 - 第二参数为接收速率调节器,用户可在编辑框中输入定时器间隔时间值(单位:ms),例如数值表示每秒处理一个数据包的能力。特别地,设定值为1000时即意味着接收速率为每秒处理1个包。 - 第三参数为辅助定时器设置项,该参数决定了在接收到数据包后无反向流量应答的情况下,发送方需等待应答包的时间延迟(单位:ms)。 异常处理界面提供以下功能: - 用户可在此区手动输入丢失的响应帧,并以帧序号形式填写具体内容。各参数之间使用空格分隔以便于识别和编辑。 - 当前状态显示接收窗口运行状况,包括当前接收到的数据包范围、令牌计数等关键指标信息。 - 输出界面用于实时展示接收方系统的运行情况及协议交互过程。 用户需在所有相关参数配置完毕后,点击"开始接收"按钮以进入数据接收模式。发送程序界面如图2所示,其功能分区与上文描述一致。
内容概要:本文介绍了基于dq0变换的三相串联有源电力滤波器(SAPF)的Simulink仿真模型,重点利用dq0坐标变换实现对谐波和无功电流的精确检测与补偿,提升电力系统的电能质量。文档还涵盖了中间直流环节的三相电力电子变压器(PET)建模、固定电容器与可控基于dq0变换的三相串联有源电力滤波器的Simulink模型SAPF晶闸管无功补偿装置(FCTCR)等配套设备的仿真设计,形成完整的电力系统仿真体系。此外,文中整合了多种先进仿真案例,包括基于现代智能算法的优化控制、故障诊断、路径规划及信号处理等内容,展示了MATLAB/Simulink在电力电子与电力系统领域的广泛应用能力。; 适合人群:电气工程、自动化及相关专业的研究生、科研人员及从事电力系统仿真与控制的工程技术人员;具备一定MATLAB/Simulink使用基础和电力电子背景知识的开发者;; 使用场景及目标:① 掌握dq0变换在有源滤波器中的应用原理与建模方法;② 学习SAPF系统的设计思路与仿真调试技巧;③ 借鉴文中提供的多种电力系统仿真模型与优化算法实现方案,用于科研项目或实际工程开发;④ 结合智能优化算法与深度学习技术开展电能质量治理与故障诊断研究; 阅读建议:建议读者按照文档结构循序渐进地学习,重点关注dq0变换的数学原理及其在Simulink中的模块化实现,动手搭建模型并进行参数调试。同时可参考文中提供的网盘资源获取完整代码与模型文件,结合实际需求进行二次开发与创新研究。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值