- 浏览: 725202 次
- 性别:
- 来自: 宇宙
文章分类
最新评论
-
天使建站:
http://www.aijquery.cn/Html/bia ...
选择控件:select ,radio,checkbox之用jquery获取选中值的小结 -
wahahachuang8:
GoEasy实时Web推送,支持后台推送和前台推送两种:后台推 ...
【反ajax】webSocket实现实时推送功能 -
white_crucifix:
Str5=Str1+Str2+Str3+Str4,这条语句执行 ...
面试系列(二):JVM工作原理 -
yanxing2012:
写的不对,http://blog.csdn.net/lian_ ...
List集合的复制方式小结 -
u012879379:
嗯,一针见血的指出了问题,谢谢博主
JedisDataException: ERR only (P)SUBSCRIBE / (P)UNSUBSCRIBE / QUIT allowed in thi
有的时候,当用户选择查询条件时碰到查询结果列表字段太多时,常常会想要选择性地只显示部分由自己选择的字段.现在为了达到根据用户选择动态显示查询结果的列的效果,可以在查询条件上构建一个checkboxlist,当用户勾选某几个字段时,查询结果的列只显示用户选中的这几个字段.另外,为了达到友好的用户体验,如果用户一个字段都没选中,会有提示的效果.
(注:本实例只给出部分关键的代码)
step1.部分关联的jsp页面代码
注:比如选择运营商、业务、省份,则reportSearchVO.rowFields={2,4,5}
step2.相关的js代码
step3.reportSearchVO对应的(相关列显示)属性如下:
其中,RowFieldVO:
step4.查询的action和service
action:
service:
step5.查询的sql语句(ibatis)
step6.动态显示查询结果的页面
这样,就达到了由用户选择动态显示所选字段的效果.step3是本业务的核心代码.另外注意<s:if test/>标签的使用.
(注:本实例只给出部分关键的代码)
step1.部分关联的jsp页面代码
<tr> <td class="td_title" nowrap="nowrap">统计显示列<font color="red">*</font></td> <td class="detail"> <input type="checkbox" name="reportSearchVO.rowFields" value="<%=RowFieldVO.ROW_FIELD_DATE %>" />日期 <input type="checkbox" name="reportSearchVO.rowFields" value="<%=RowFieldVO.ROW_FIELD_SP %>" />运营商 <input type="checkbox" name="reportSearchVO.rowFields" value="<%=RowFieldVO.ROW_FIELD_CP %>" checked="checked"/>合作商 <input type="checkbox" name="reportSearchVO.rowFields" value="<%=RowFieldVO.ROW_FIELD_SERVICE %>"/>业务 <input type="checkbox" name="reportSearchVO.rowFields" value="<%=RowFieldVO.ROW_FIELD_PROVINCE %>"/>省份 <input type="checkbox" name="reportSearchVO.rowFields" value="<%=RowFieldVO.ROW_FIELD_FLAG %>"/>明细 </td> </tr> <tr align="center"> <td colspan="2" nowrap="nowrap" align="center"> <span style="PADDING-RIGHT: 10px;"> <input class=button type=submit value="查询" onclick="return Verfidy();"/> <input class=button type=button onclick="removeall()" value="清空" /></span></td> </tr>
注:比如选择运营商、业务、省份,则reportSearchVO.rowFields={2,4,5}
step2.相关的js代码
function Verfidy() { var tmp = document.getElementsByName("reportSearchVO.rowFields"); var field=null; for (var i=0;i<tmp.length; i++) { if (tmp[i].checked){ field=tmp[i].value; break; } } alert("field:" + field); if (field==null){ alert("请至少选择一项统计列!"); return false; } document.getElementById("reportForm").action=action; return true; }
step3.reportSearchVO对应的(相关列显示)属性如下:
private String[] rowFields; private RowFieldVO rowFieldVO = new RowFieldVO();
其中,RowFieldVO:
public static final int ROW_FIELD_DATE = 1; public static final int ROW_FIELD_SP=2; public static final int ROW_FIELD_CP=3; public static final int ROW_FIELD_SERVICE=4; public static final int ROW_FIELD_PROVINCE = 5; public static final int ROW_FIELD_FLAG =6; /** * 0: 不显示;1: 显示 */ private int isShowDate = 0; private int isShowProvince = 0; private int isShowSP=0; private int isShowCP = 0; private int isShowService =0; private int isShowFlag =0; /** * 判断并获得要统计显示的列 * @param rowFields * @return */ public void setShowRowField(String[] rowFields){ for (String rowField : rowFields) { int rowValue = Integer.valueOf(rowField); if (rowValue == RowFieldVO.ROW_FIELD_DATE) { isShowDate = 1; }else if (rowValue == RowFieldVO.ROW_FIELD_PROVINCE) { isShowProvince = 1; }else if(rowValue == RowFieldVO.ROW_FIELD_SP){ isShowSP = 1; }else if (rowValue ==RowFieldVO.ROW_FIELD_CP){ isShowCP = 1; }else if (rowValue ==RowFieldVO.ROW_FIELD_SERVICE) { isShowService = 1; }else if (rowValue ==RowFieldVO.ROW_FIELD_FLAG) { isShowFlag = 1; } } }
step4.查询的action和service
action:
reportResultVOList = reportService.getReportList(reportSearchVO);
service:
reportSearchVO.getRowFieldVO().setShowRowField(reportSearchVO.getRowFields());//引用step3中rowFieldVO的setShowRowField方法判断哪些字段是需要显示的
step5.查询的sql语句(ibatis)
SELECT '0', <isEqual property="rowFieldVO.isShowDate" compareValue="1"> b.dates, </isEqual> <isEqual property="rowFieldVO.isShowDate" compareValue="0"> null dates, </isEqual> <isEqual property="rowFieldVO.isShowSP" compareValue="1"> b.spId, </isEqual> <isEqual property="rowFieldVO.isShowSP" compareValue="0"> null spId, </isEqual> <isEqual property="rowFieldVO.isShowCP" compareValue="1"> b.cpId, cp.username cpName, </isEqual> <isEqual property="rowFieldVO.isShowCP" compareValue="0"> null cpId , null cpName, </isEqual> <isEqual property="rowFieldVO.isShowService" compareValue="1"> b.serviceCode, service.name serviceName, </isEqual> <isEqual property="rowFieldVO.isShowService" compareValue="0"> null serviceCode, null serviceName, </isEqual> <isEqual property="rowFieldVO.isShowProvince" compareValue="1"> b.provinceId, province.provinceName, </isEqual> <isEqual property="rowFieldVO.isShowProvince" compareValue="0"> null provinceId, null provinceName, </isEqual> FROM XXX WHERE b.dates BETWEEN #beginDate# AND #endDate# <isGreaterThan property="spId" compareValue="0"> AND b.spId=#spId# </isGreaterThan> <isGreaterThan property="cpId" compareValue="0"> AND b.cpId=#cpId# </isGreaterThan> <isGreaterThan property="serviceCode" compareValue="0"> AND b.serviceCode=#serviceCode# </isGreaterThan> <isNotEmpty property="provinceId" > AND b.provinceId=#provinceId# </isNotEmpty>
step6.动态显示查询结果的页面
表头: <s:if test="reportSearchVO.rowFieldVO.isShowDate==1"><td class="td_title" nowrap="nowrap">日期</td></s:if> <s:if test="reportSearchVO.rowFieldVO.isShowSP==1"><td class="td_title" nowrap="nowrap">运营商</td></s:if> <s:if test="reportSearchVO.rowFieldVO.isShowCP==1"><td class="td_title" nowrap="nowrap">合作商</td></s:if> <s:if test="reportSearchVO.rowFieldVO.isShowService==1"><td class="td_title" nowrap="nowrap">业务</td></s:if> <s:if test="reportSearchVO.rowFieldVO.isShowProvince==1"><td class="td_title" nowrap="nowrap">省份</td></s:if> (注:表中省略):
这样,就达到了由用户选择动态显示所选字段的效果.step3是本业务的核心代码.另外注意<s:if test/>标签的使用.
发表评论
-
关于IDEA的debug阻塞模式的一个坑
2018-05-03 17:28 7188-----------------------201805 ... -
多线程:如何确定所有任务都执行完成了?
2018-04-02 15:30 3576--------------------20180502更 ... -
多线程写同一个excel文件(导出)
2018-03-22 15:14 14495今天是2018.03.22,已经 ... -
进一步理解get和set
2016-11-17 17:23 1169做CRUD的功能时,我们常常会定义一个和表对应的实体类信息 ... -
使用Hessian来进行远程调用
2016-11-03 09:39 841Hessian是一个轻量级的remoting onhttp工 ... -
测试redis+keepalived实现简单的主备切换
2016-07-17 18:23 6279keepalived是一个是集群管理中保证集群高可用的一个 ... -
关于log4j错误日志的保存
2016-05-06 18:33 1891因为最近着手了项目里面日志的规范化工作,之前开发的时候都是 ... -
解决一个web的项目定时任务入库“卡住”问题
2016-05-04 15:16 2415事情的起因是因为我 ... -
No qualifying bean of type is defined: expected single matching bean but found 2
2016-03-28 18:59 2354最近在Spring的注解中,尝试获取一个Bean出现了如题 ... -
一种解决在Linux环境下发送短信中文乱码问题的方案
2016-03-10 19:15 2207这几天在折腾短信的 ... -
【反ajax】webSocket实现实时推送功能
2016-01-21 18:28 9018额。前天就说有时间要研究下webSocket这种实时推技术 ... -
运用Comet技术实现服务端往客户端主动推送数据(结合redis发布/订阅)
2016-01-18 21:07 1记得我之前写过 redis主动向页面push数据 的文章 ... -
运用Comet技术实现服务端往客户端主动推送数据(结合redis发布/订阅)
2016-01-18 21:00 3117记得我之前写过 redis主动向页面push数据 的文 ... -
将Java Project (非web项目)打成Jar包并实现相关功能
2015-11-25 17:21 4959【若要转载,请标明出处,谢谢~~】 http://rai ... -
webService的初步认识和简单用例
2015-10-19 18:19 2686一、什么是webService? Web Service ... -
object和byte[]数组相互转换
2015-09-25 14:15 0package com.kayak.util.object; ... -
单例模式在高并发情形下造成的访问覆盖问题
2015-09-25 11:29 6005好吧,最近我特么是跟高并发杠上了。。 单例模式想必很很常见 ... -
oscache之刷新缓存flushEntry的使用
2015-09-19 15:12 2201========================== 困 ... -
多线程 & 异步调用 的理解
2015-09-17 11:52 9220最近做项目,高并发的情况比较常见,因此常常需要用到多线程。 ... -
ServeltContext的理解和一种使用场景
2015-09-17 11:12 2158最近做项目,用到了一个比较不熟悉的东西,但我自己又觉得很有 ...
相关推荐
vue根据数据动态展示页面,动态组件,动态表格,动态弹窗等,仅供静态数据进行页面展示。vue根据数据动态展示页面,动态组件,动态表格,动态弹窗等,仅供静态数据进行页面展示。vue根据数据动态展示页面,动态组件...
通过设置数据集参数,我们可以将用户的选择(比如需要显示的列)作为输入,动态地调整数据集的查询语句。在“实现动态列sql.txt”文件中,应该包含了根据参数构建SQL查询的逻辑。通常,这会涉及到字符串拼接或者使用...
pb 动态创建数据窗口列,只要修改sql语句就可可以了
本文将深入探讨如何在jGrid中实现列的动态显示和配置,这是在处理复杂数据展示时非常有用的功能。 ### jGrid中的动态列显示 动态列显示意味着根据特定条件或用户选择来调整表格中显示的列。这不仅提高了用户体验,...
总结起来,使用SpringMVC实现动态加表及字段并显示数据,需要理解SpringMVC的工作原理,掌握数据库操作和表单设计。在实际开发中,还需要关注性能优化、安全性等方面的问题,以确保系统稳定可靠。这是一项涉及多方面...
- 在某些情况下,你可能希望根据用户的选择动态显示或隐藏列。为此,可以编写事件处理程序,例如在“BeforeOpen”或“AfterOpen”事件中,根据条件设置列的可见性。 4. 示例代码: ```pb // 获取数据窗口对象 ...
通过以上讲解,我们可以看到,动态配置DBgrid列显示类是将用户界面的定制能力与数据存储技术相结合,提高了应用程序的灵活性和用户体验。理解并掌握这一知识点,对于开发复杂的Delphi数据驱动应用至关重要。
在Qt框架中,显示数据库表中的数据通常涉及到多个步骤,包括连接数据库、执行查询语句、将查询结果映射到TableView组件以及自定义数据模型。以下是对这些关键知识点的详细说明: 1. **Qt与数据库连接**:Qt提供了一...
PB 动态设置数据窗口列隐藏和显示的例子,用PB8写的,因用户要求在网上没有找到,自己写了一个。 写得比较粗糙,但能看得懂。
本主题将深入探讨如何实现GridView动态显示列,即根据用户需求或特定条件在页面加载时或运行时自定义列显示。JavaScript的引入使得这种动态调整无需页面刷新,提升了用户体验。 首先,了解GridView的基本结构。...
1. **动态加载列头和数据**:这是一个高级的前端特性,允许表格在运行时根据后端返回的数据动态生成列头和填充数据。这样可以应对数据结构多变的情况,例如,不同的用户角色可能看到的列不同,或者某些数据只有在...
通过以上步骤,我们可以在MVC应用中实现根据数据库内容动态显示固定行数的数据,无论数据量多大,始终保持显示的行数不变。这不仅提高了用户体验,也减轻了服务器的压力。在实际项目中,还需要结合具体需求和环境...
根据所给的部分内容中的描述,可以推断出FineReport在设计动态列报表时,可以通过编写SQL查询语句来从数据库中获取数据,并将这些数据以动态列的形式展现。例如,代码段 "ds1=split($p1,",")" 可能指的是通过某种...
4. **动态显示**:描述中提到的“根据鼠标事件显示不同内容”可能是指行或列的详细信息。可以添加鼠标事件监听器,当用户点击某一行或某一单元格时,获取相关数据并显示在单独的对话框或详细视图中。这可以通过重写`...
其次,**隐藏列**是根据需求动态显示或隐藏报表中的特定列。在ireport中,可以通过编程方式或用户交互来控制列的可见性。在设计阶段,可以先将所有可能需要的列都设计好,然后在运行时根据条件决定哪些列的`print...
例如,你可以根据数据库查询结果的字段数量和名称,动态创建对应的列,并绑定数据。 在描述中提到的"cxGrid动态建多表头及列"可能涉及到以下步骤: 1. 初始化cxGrid组件:首先在界面上放置一个cxGrid组件,并设置其...
在本篇文章中,介绍了如何利用layui框架实现异步加载table表中某一列数据的示例。layui是一个轻量级的前端UI框架,提供了一整套的解决方案,方便前端开发者快速构建界面。本文将重点阐述如何在layui框架下,利用异步...
本文将深入探讨如何在DataGrid控件中动态隐藏或显示指定列,以便根据用户需求或应用程序逻辑调整界面展示。 首先,我们要了解DataGrid控件的基本结构。DataGrid通常与数据源绑定,例如DataTable、DataSet或Binding...
在实际开发中,"find"功能通常涉及数据过滤和查找,与通用查询GRID风格数据窗口显示的列密切相关,可能涉及到如何根据用户输入的条件动态改变显示的列。 综上所述,通用查询GRID风格数据窗口要显示的列涉及到数据库...
1. 数据库查询:通过SQL语句动态构造查询,根据用户选择的字段决定查询哪些列。 2. 报表设计工具:使用支持动态列的报表设计工具,如Microsoft的 Reporting Services (SSRS) 或者RDLC(Report Definition Language ...