字典传值传统实现
来源:互联网 发布:数据库置疑的原因 编辑:程序博客网 时间:2024/05/16 09:48
在以前的项目中所认知的字典联动传值都是点击AJAX二次请求,或者是DWR的,今天为了减少一次请求,特地来了来了个一次传值。于是开始了折腾之路。
字典A是select项目 类型,字典B是项目类型子项,A改变,B也跟着相应的改变,前面值变化影响后面,这是项目中应用非常非常多的场景。
我首先写了后台sql,DB2数据库,
select a.id,a.TITLE,a.name,ROW_NUMBER() OVER(PARTITION BY a.id ORDER BY a.TINDEX) as index from (select ss.id,ss.TITLE,sl.name, sl.TINDEX from table1 ss
left join
table2 sl on
ss.id=sl.PARAMID
where
sl.ISDEL='0' and (ss.id='11' or ss.id='12' or ss.id='13')
and sl.STATUS='1' )a ;数据如下:
ID TITLE NAME INDEX
11 项目培训全行 1
11 项目培训本单位 2
11 项目培训外单位 3
11 项目培训行外机构 4
12 实习培训新入职 1
12 实习培训跨组別 2
12 实习培训跨单位 3
很普通的sql,此处用了开窗函数,呵呵。数据的展示看起来还不错,然后我就直接传了list到页面了,原生的java list,未做任何处理放到request域中,这也是折腾的开始:
到了页面之后,我开始各种绞净脑汁的想办法处理这一坨值 ,从request中取出来放到js里,放到页面中,各种符号不对,格式不对,靠,差点让人放弃了。痛苦,最后代码形成如下
到了页面之后,我开始各种绞净脑汁的想办法处理这一坨值 ,从request中取出来放到js里,放到页面中,各种符号不对,格式不对,靠,差点让人放弃了。痛苦,最后代码形成如下
//初始化select的值
<span >項目類型</span>
<select onchange="projectchange(this);"id="projecttypes" >
<%
int i=0;
for(Map<String, Object> item :list){ //list的增强for循环,开始是用普通for的,发现不行
if(i>0){
String a=list.get(i).get("ID").toString();
String b=list.get(i-1).get("ID").toString();
if(!a.equals(b)){ //在这里去重
%>
<option value="<%=list.get(i).get("ID") %>"><%=list.get(i).get("TITLE") %></option>
<%
}
}else{
%>
<option value="<%=list.get(0).get("ID") %>"><%=list.get(0).get("TITLE") %></option>
<%
}
i++;
}%>
</select>
下面是折腾的重点来了! onchange触发事件 function projectchange(t){
$("#projecttypesunit").empty();
<%int v=0;
List<Map<String,Object>> list =(List<Map<String,Object>>)request.getAttribute("listtypes");
for(Map<String, Object> item :list){
String a=list.get(v).get("ID").toString(); //拿到标识的ID
%>
var b="<%=list.get(v).get("NAME") %>"; //用变量b保存NAME,此处b折腾了好久
if($(t).find(":selected").val()=="11"){ //項目培训
<%if(a.equals("11")){%>
$("#projecttypesunit").append("<option value="+<%=list.get(v).get("INDEX")%>+">"+b+"</option>");
<%}%>
}else if(...) {//下面还有12,13,代码一样的
}
}
<%v++;} %>
} 整篇都是java代码跟js代码杂交在一起,看得人痛苦!我改了半天,在append后面的符号上报错都搞了好久,后来实在不行用变量b代替了 ,此处list也给了页面中的增强for使用了。结束了测试完美实现。 看来还是应该转成json传过来的,代码就会美观一点。
效果是实现了但是感觉非常不可取,如果不是因为这个项目限制,我应该可以使用其它更好的方法。
0 0
- 字典传值传统实现
- 传统jms实现步骤
- 传统动画实现卫星菜单
- Unity传统动画的实现
- Servlet实现传统验证码
- Ajax 的传统实现 实例
- 数据字典的实现
- lz78中字典实现
- 字典问题---c实现
- Java实现字典树
- C 字典实现
- 字典树实现
- 字典树数组实现
- 字典树的实现
- 字典树简单实现
- 字典树 python实现
- lucene字典实现原理
- 字典树 c++ 实现
- jsp与El,jstl知识点总结归纳
- 基础算法:(1)分治法第一课
- JAVA性能优化权威指南 读书笔记(三)
- 关于C语言函数返回数组的问题
- c++利用vector排序
- 字典传值传统实现
- linux基础学习总结04
- ibat初试
- Linux学习笔记--mdadm命令
- Android图片的三级缓存整理
- Python3.4安装lxml、selenium、pyquery
- meta标签详解
- Sublime Text 3 如何修改默认快捷键
- NNU_20161103_5PAT1057. 数零壹