[ECSide] ECSide的列设置可以是动态的吗?
wplqw
2007-06-08
fin,你好:
我用了你的ecside控件,觉得不错,但是有这样个需求,我的查询结果列的个数,顺序甚至是列格式都是动态的,用户在查询设置里面选那些字段,就显示那些字段,请问ecside有直接支持这样的吗?如果没有,我建议在标签上添加一个list属性,然后从request里面取出一个column设置类型的list.最好甚至可以在java后台全新生成一个ecside对象,压入request中,再生成tag,因为你也知道,客户需求有时候很变态的,什么都是动态. |
|
karisen
2007-06-08
eXtremeComponents有这个预留接口,不知道ecside是否提供;没试过呵呵。请看:
——————> 在一个通用查询项目中想把查询结果集的显示部分采用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); 应用示例: <%@page contentType="text/html; charset=GBK"%> <%@page import="java.util.*"%> <%@taglib uri="/WEB-INF/extremecomponents.tld" prefix="ec"%> <html> <head> <title>AutoGenerateColumnsName</title> <link rel="stylesheet" type="text/css" href="/oblog312/css/extremecomponents.css"/> </head> <body bgcolor="#ffffff"> <h1>JBuilder Generated JSP</h1> <% List goodss = new ArrayList(); for (int i = 1; i <= 10; i++) { Map goods = new java.util.HashMap(); goods.put("代码", "A00" + i); goods.put("名称", "面包" + i); goods.put("状态", "A:valid"); goods.put("出生日期", new Date()); goodss.add(goods); } List columns = new ArrayList(); columns.add("代码"); columns.add("名称"); columns.add("状态"); columns.add("出生日期"); List fieldnames = columns; //实现[获取字段名称列表]方法; List results = goodss; //实现[获取查询结果集]方法; request.setAttribute("fieldnames", fieldnames); request.setAttribute("results", results); %> <ec:table items="results" var="result" action="${pageContext.request.contextPath}/AutoGenerateColumnsName.jsp" imagePath="${pageContext.request.contextPath}/images/table/*.gif" title="查询结果" width="100%" rowsDisplayed="5"> <ec:parameter name="method" value="ec"/> <ec:row> <ec:columns autoGenerateColumns="com.itorgan.tags.extreme.AutoGenerateColumnsImpl"/> </ec:row> </ec:table> </body> </html> |
|
wplqw
2007-06-08
谢谢楼上的,我再仔细看看ecside的文档和代码.
|
|
appleIIappleII
2007-06-09
我也关心这个问题,不过我没有看明白楼上的帖子,希望有一个比较清楚的解决办法,谢谢!
|
|
appleIIappleII
2007-06-09
<code>
<% String columnTitles="编号,用户名,密码,EMAIL"; String columnWidths="10%,30%,30%,30%"; String[] columnPropertys=new String[]{"USERID","USERNAME","PASSWD","EMAIL"}; // "FIELD_NAMES" 是关键字 不能改变 ,如果想使用不同的 // 你可以自己编写 org.ecside.core.bean.AutoGenerateColumnsImpl实现 request.setAttribute("FIELD_NAMES",columnPropertys); %> </code> 这是ecside例子中的code,但我有几个问题没有搞清楚,希望大家能解惑 1、既然列是动态的,我又怎么能知道columnTitles中的内容 2、同样的原因,又怎么能知道columnPropertys中的内容 希望fins能解答,谢谢! |
|
fins
2007-06-10
动态肯定是根据一些已知条件来确定的
例如链接的不同 或者提交的参数不同 你总是会想办法拼装出 columnTitles columnPropertys的啊 |
|
wplqw
2007-06-12
感谢各位关注,通过对esside代码的研究,
发现可以通过以下方法实现简单的动态 1.首先在标签里面设置 <ec:columns autoGenerateColumns="org.ecside.core.bean.AutoGenerateColumnsImpl"/> 注意:原来的固定列设置部分要删除,否则有冲突 2.然后将字段名逗号分割串压入 req的ECSideConstants.TABLE_FILEDS_KEY, title逗号分割串压入ECSideConstants.TABLE_TITLES_KEY 宽度逗号分割串压入ECSideConstants.TABLE_WIDTHS_KEY 这样,就可以动态显示sql中的字段了, 更多设置可以查看org.ecside.core.bean.AutoGenerateColumnsImpl这个类 |
|
vision2000
2007-09-18
wplqw 写道 感谢各位关注,通过对esside代码的研究,
发现可以通过以下方法实现简单的动态 1.首先在标签里面设置 <ec:columns autoGenerateColumns="org.ecside.core.bean.AutoGenerateColumnsImpl"/> 注意:原来的固定列设置部分要删除,否则有冲突 2.然后将字段名逗号分割串压入 req的ECSideConstants.TABLE_FILEDS_KEY, title逗号分割串压入ECSideConstants.TABLE_TITLES_KEY 宽度逗号分割串压入ECSideConstants.TABLE_WIDTHS_KEY 这样,就可以动态显示sql中的字段了, 更多设置可以查看org.ecside.core.bean.AutoGenerateColumnsImpl这个类 请给我个例子,谢谢! mymail_lyp@163.com |
|
lizhengfa
2008-09-03
可以给我一个列子不呢?谢谢 lizhengfa129@163.com
|
|
lgdlgd
2008-09-27
下不到源码,只有不断的尝试,发现ECSideConstants.TABLE_TITLES_KEY是要字任串数组才行,即getRequest().setAttribute(ECSideConstants.TABLE_TITLES_KEY, new String[]{"1","2","3","4"});
但是试了很多遍,值和列宽都出不来... |
相关讨论
相关资源推荐
- wine-launcher:Wine Launcher-在Linux下运行Windows游戏
- linux上的windows游戏下载软件,PlayOnLinux在Linux上轻松安装Windows游戏和软件
- playonlinux_使用PlayOnLinux在Linux上轻松安装Windows游戏和软件
- wine 游戏 linux,在Ubuntu上使用Wine、PlayOnLinux或Winetricks玩Windows游戏
- linux上的windows游戏,PlayOnLinux - 在Linux上运行Windows应用程序和游戏
- linux上的windows游戏下载软件,在PlayOnLinux上使用,轻松安装 Windows 游戏&软件...
- linux如何运行windows游戏,Steam 让我们在 Linux 上玩 Windows 的游戏更加容易
- 深度linux运行windows游戏,在深度Linux玩Windows游戏,可以这样安装wine的最新版
- 深度linux运行windows游戏,在deepin linux系统中手动安装windows游戏的小技巧
- linux如何运行windows游戏,如何在Linux上运行Windows应用程序和游戏 互联网技术圈 互联网技术圈...