级联动态搜索条件表单的创建
来源:互联网 发布:exchange2013多域名 编辑:程序博客网 时间:2024/06/15 18:47
1、serivce类:
<span style="font-size:14px;">@Servicepublic class EffectService {@Autowiredprivate FindInfoClassDao findInfoClassDao;@Autowiredprivate EffectDao effecQueryDao; public Pageable<Map<String,Object>> condictionSearch(String tableId,Map params,Page page) throws ParseException{ LogicTable table =findInfoClassDao.findInfoClassTable(tableId); List<LogicColumn> searchColumn = findInfoClassDao. findColumnsByTableId(tableId,"1","0"); final List<LogicColumn> resultColumn = findInfoClassDao.findColumnsByTableId(tableId,"0","1"); Set parNames = params.keySet();final StringBuffer querySql = new StringBuffer("SELECT * FROM " + table.getName() + " WHERE 1=1 ");final StringBuffer countSql = new StringBuffer("SELECT count(*) FROM " + table.getName() + " WHERE 1=1 ");StringBuffer conditionSql = new StringBuffer(" ");for (Object obj : parNames) {String name = obj.toString();String value = ((String[])params.get(obj))[0];if(StringUtils.isNoneBlank(value)){for (LogicColumn c : searchColumn) {if(StringUtils.equals(c.getName(), name)){if(StringUtils.equals(c.getType(),"number") || StringUtils.equals(c.getType(),"int")){conditionSql.append(" AND "+name+" = "+value);}else if(StringUtils.equals(c.getType(),"varchar2")){conditionSql.append(" AND "+name+" = "+"'"+value+"'");}else if(StringUtils.equals(c.getType(),"date")){//前台日期格式:2014-09-09Date startDate = DateUtils.parseDate(value, "yyyy-MM-dd 00:00:00");Date endDate = DateUtils.parseDate(value, "yyyy-MM-dd 23:59:59");//conditionSql.append(" AND TO_CHAR("+c.getName()+",'yyyy-mm-dd') = '"+ value+"'");conditionSql.append(" AND "+c.getName() +">="+startDate+" AND "+c.getName() +"<="+endDate);}}}}}//执行查询Pageable<Map<String,Object>> pages = effecQueryDao.findWithPage(countSql.append(conditionSql).toString(), querySql.append(conditionSql).toString(), null, new RowMapper<Map<String,Object>>() {@Overridepublic Map<String,Object> mapRow(ResultSet rs, int rowNum) throws SQLException {Map<String,Object> map = new HashMap<String,Object>();for (LogicColumn column : resultColumn) {//System.out.println("查询sql:=="+querySql);//System.out.println("总数sql:=="+countSql);column.getType();System.out.println("column.getName():=="+column.getName()+","+column.getNameDesc());//System.out.println(column.getType());if(StringUtils.equals(column.getType(),"int") || StringUtils.equals(column.getType(),"number")){map.put(column.getName(), rs.getInt(column.getName()));}else if(StringUtils.equals(column.getType(),"varchar2")){//System.out.println(column.getType());map.put(column.getName(), rs.getString(column.getName()));}else if(StringUtils.equals(column.getType(),"date")){//前台日期格式:2014-09-09map.put(column.getName(), rs.getDate(column.getName()));}}return map;}}, page);return pages; }}</span>二、controller:
<span style="font-size:14px;">/** * 条件动态查询信息类 * @param request * @param response * @param writer * @throws Exception */@RequestMapping("/conditionSearch")public void conditionSearch(HttpServletRequest request,HttpServletResponse response, Writer writer) throws Exception {String tableId = request.getParameter("tableId");Map params = request.getParameterMap();System.out.println("map 的参数:"+params);Pageable<Map<String,Object>> page = effectService.condictionSearch(tableId,params,RequestUtils.buildPage(request));String json = ResponseUtils.buildJson(page);writer.write(json);}</span>三、easyui生成 jsp页面:
<span style="font-size:14px;"><%@ page language="java" contentType="text/html; charset=UTF-8" pageEncoding="UTF-8"%><!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/loose.dtd"><html><head><meta http-equiv="Content-Type" content="text/html; charset=UTF-8"><title>有效数据</title><link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/jquery-easyui-1.3.4/themes/bootstrap/easyui.css"><link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/jquery-easyui-1.3.4/themes/icon.css"><link rel="stylesheet" type="text/css" href="${pageContext.request.contextPath}/js/jquery-easyui-1.3.4/themes/icon-suit-a.css"> <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-1.10.2.min.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-easyui-1.3.4/jquery.easyui.min.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/js/jquery-easyui-1.3.4/locale/easyui-lang-zh_CN.js"></script> <script type="text/javascript" src="${pageContext.request.contextPath}/js/base.js"></script><script type="text/javascript" src="${pageContext.request.contextPath}/js/My97DatePicker/WdatePicker.js"></script></head><script type="text/javascript">$(function(){ $('#deptNameBox').combobox('setValue','${ sysUser.sysGroupName }');});</script><body><div style="margin:10px 10px;"></div><table id="customGrid" class="easyui-datagrid" style="height:600px;width:1024px" data-options="rownumbers:true, pagination:true, singleSelect:true, collapsible:true, fitColumns:true, pageSize:10, url:'', title:'请选择下拉框查询', iconCls:'', toolbar:'#tb'"> </table> <div id="tb" style="padding:5px;height:auto"> <div style="margin-bottom:5px"> 部门:<input id="deptNameBox" class="easyui-combobox" name="" data-options="required:true,editable:false,url:'${pageContext.request.contextPath}/front/table/findDept.action?uid=${ sysUser.username }',method:'post',valueField:'id',textField:'text', panelHeight:'auto',onSelect:function(rec){var url = '${pageContext.request.contextPath}/front/table/findTableByDept.action?id='+rec.id;$('#tableNameBox').combobox('clear');$('#tableNameBox').combobox('reload', url);}"> 信息类:<input id="tableNameBox" class="easyui-combobox" name="" data-options="required:true,editable:false,valueField:'id',textField:'text',panelHeight:'auto',onSelect:function(rec){var url = '${pageContext.request.contextPath}/front/table/findQueryColumnByTable.action?issearch=1&id='+rec.id;var flag = 1;jQuery.post(url,function(data){var conditionHtml = '';jQuery.each(data,function(i,item){if(item.attributes == 'date'){conditionHtml += '<span style=\'padding-left:5px\'>'+item.text+'</span>:<input name=\''+item.state+'\' id=\''+item.id+'\' class=\'Wdate\' onFocus=\'WdatePicker({readOnly:true})\' style=\'width:100px\'>';}else{conditionHtml += '<span style=\'padding-left:5px\'>'+item.text+'</span>:<input name=\''+item.state+'\' id=\''+item.id+'\' style=\'width:100px\'>';}flag = 0;});jQuery('#searchCondition').html('').html(conditionHtml);flag == 0 ? jQuery('#searchForm').show() : jQuery('#searchForm').hide();$('#customGrid').datagrid('loadData',{total:0,rows:[]}); $('#customGrid').datagrid({columns:[[]],url:''});},'json');}"> <form id="searchForm" style="display:none;padding-top: 10px;"> <span id="searchCondition"></span> <a href="#" class="easyui-linkbutton" iconCls="icon-search" onclick="conditionSearch();">查询</a> <a href="#" class="easyui-linkbutton" iconCls="icon-refresh" onclick="conditionReset();">重置</a> </form> </div> </div><script type="text/javascript">function viewFormatter(value,row,index){var id = row.customId;var name = row.customName;return '<a href="#" onclick="viewDetail(\''+id+'\',\''+name+'\');">查看</a>';}function viewDetail(id,name){jQuery.post('${pageContext.request.contextPath}/query/custom/findById.action',{"customId":id},function(data){ $('#customViewGrid').datagrid({"data":data}); $('#customviewWin').window({'title':"定制名称:"+name}); $('#customviewWin').window('open');},'json');} function conditionSearch(){ var tableId = jQuery('#tableNameBox').combobox('getValue'); var inputs = jQuery('#searchCondition').find('input'); jQuery.ajax({ url:'${pageContext.request.contextPath}/front/table/findQueryColumnByTable.action', data:{'id':tableId,'isresult':'1'}, async:false, dataType:'json', success:function(data){ reloadGrid(data); } }); function reloadGrid(data){ var columns = []; var columnName = ''; jQuery.each(data,function(i,item){ var obj = {'field':item.state,'title':item.text}; columns.push(obj); columnName += item.state +','; }); //查询参数 var querParams = {}; jQuery.each(inputs,function(i,item){ querParams[item.name] = item.value; }); $('#customGrid').datagrid({ method:'post', queryParams:querParams, url:'${pageContext.request.contextPath}/query/effecQuery/conditionSearch.action?id='+tableId+'&columnName='+columnName, columns:[columns], }); } } //重置 function conditionReset(){ jQuery.each(jQuery('#searchForm input'),function(i,item){ jQuery(item).val(''); }); } </script> </body></html></span>
0 0
- 级联动态搜索条件表单的创建
- 动态创建级联菜单
- 动态创建级联菜单
- Struts动态表单的创建
- 列表页的动态条件搜索
- 创建动态表单的iOS类库:XLForm
- 动态的省市级联
- android创建动态表单
- 动态创建表单元素
- JQuery动态创建表单
- Oracle APEX创建参数化可以搜索的表单
- jquery动态创建form表单
- JS 动态创建表单元素
- JS动态创建from表单
- 动态创建表单并提交
- JQuery动态创建DOM、表单元素的实现代码
- 动态生成SQL查询条件定制表单及语句的脚本
- springboot根据不同的条件创建bean,动态创建bean,@Conditional注解使用
- javascript生成新浪微博短链接
- Git详解之二 Git基础
- Codeforces Round #279 (Div. 2) D
- Sipdroid简单分析
- Git详解之三 Git分支
- 级联动态搜索条件表单的创建
- Git详解之四 服务器上的Git
- 禁止Html5在手机上屏幕页面缩放
- 日语学习之沪江N4基础 20141124 -4
- Linux上配置主从数据库
- Git详解之五 分布式Git
- 5倍乘法(指针)
- 构建开源的项目环境(Spring/ibatis/maven/nexus)
- 13周项目五。。统计每个字母出现的次数