问题描述
如上图,部门和二级部门都是通过for循环得到的样式要生产这样,可以吗2个for循环要怎么写这段代码啊谁帮我写这段代码主要是TR,TD的布局,非常谢谢了。。。。。
解决方案
解决方案二:
看不到图。。。。
解决方案三:
可以看到图吧。。。。
解决方案四:
aaaaa1111111111111111aa2111111111111111aa3111111111111111bbbbb1111111111111111bb2111111111111111bb3111111111111111ccccc1111111111111111cc2111111111111111cc3111111111111111
解决方案五:
大家就是这样的
解决方案六:
<table><%for(inti=0;i<parentLst.size();i++){for(intj=0;j<lst.size();j++){if(j==0){%><tr><td><%=parentLst.get(i).getName%></td><td><%=lst.get(j).getName%></td><td><%=lst.get(j).getName%></td><td><%=lst.get(j).getName%></td><td><%=lst.get(j).getName%></td></tr><%}else{%><tr><td> </td><td><%=lst.get(j).getName%></td><td><%=lst.get(j).getName%></td><td><%=lst.get(j).getName%></td><td><%=lst.get(j).getName%></td></tr><%}}}%></table>
解决方案七:
看不懂,哎,真是失败
解决方案八:
帮顶!
解决方案九:
恩恩,不知道啊。。。
解决方案十:
存在数据库里,,,用sql读。。。
解决方案十一:
你也没说你的数据结构是什么样子的怎么写啊?<table><tr><th>一级部门</th><th>二级部门</th></tr><tr><tdrowspan='3'>跨三行</td><td>xx1</td></tr><tr><td>xx2</td></tr><tr><td>xx3</td></tr><tr><tdrowspan='2'>跨二行</td><td>xx21</td></tr><tr><td>xx22</td></tr></table>
想要生成这样的代码很简单:1.直接在jsp中处理。这样要做两次循环(不是双重循环),第一次去遍历所有记录找到,每个不同部门需要跨几行,这样就可以在循环时控制显示的rowspan的大小了;2.在客户端html的代码load完成时,执行一段javascript,根据你需要的合并规则合并起来就可以了。两种都可以,有特别需要可以mailme.lovexiuxiu2006@gmail.com
解决方案十二:
<%for(inti=0;i<parentLst.size();i++){%><table><%for(intj=0;j<lst.size();j++){if(j==0){%><tr><tdcolspan=5><%=parentLst.get(i).getName%></td><tdcolspan=5><%=lst.get(j).getName%></td><tdcolspan=5><%=lst.get(j).getName%></td><tdcolspan=5><%=lst.get(j).getName%></td><tdcolspan=5><%=lst.get(j).getName%></td></tr><%}else{%><tr><tdcolspan=6> </td><tdcolspan=6><%=lst.get(j).getName%></td><tdcolspan=6><%=lst.get(j).getName%></td><tdcolspan=6><%=lst.get(j).getName%></td><tdcolspan=6><%=lst.get(j).getName%></td></tr><%}}%></table><%}%>
解决方案十三:
目有图啊
解决方案十四:
数据结构都没有看到,昨弄啊.
解决方案十五:
数据结构是这样table_parentid,name,table_sonid,parentid,name谢谢大家了
解决方案:
每天回帖即可获得10分可用分!小技巧:教您如何更快获得可用分
解决方案:
谁能写出这段代码来啊,我今天就结账啊。
解决方案:
自己顶
解决方案:
看不懂,要什么样的结果
解决方案:
看不懂,呵呵
解决方案:
引用5楼crazylaa的回复:
Javacode<table><%for(inti=0;i<parentLst.size();i++){for(intj=0;j<lst.size();j++){if(j==0){%><tr><td><%=parentLst.get(i).getName%></td>……
这样写就可以啦
解决方案:
哎有问题找百度了
解决方案:
SQL:TABLE_PARENT主表id,nameSON_TABLE子表id,name,parent_id直接查数据:SELECTA.idASPARENT_ID,A.nameASPARENTNAME,B.nameFROMTABLE_PARENTASALEFTJOINSON_TABLEASBONA.id=B.parent_id或者,顺带计算出子表的个数方便合并单元格的时候设置SELECTA.idASPARENT_ID,A.nameASPARENTNAME,B.name,C.CHILDCOUNTFROMTABLE_PARENTASALEFTJOINSON_TABLEASBONA.id=B.parent_idLEFTJOIN(SELECTB.parent_id,COUNT(*)ASCHILDCOUNTFROMSON_TABLEASBGROUPBYB.parent_id)CONA.id=C.parent_id
按照以上代码,得出的结构,加上下面的代码(需要修改下),可以得出你要的结果<%@pagelanguage="java"import="java.util.*"pageEncoding="utf-8"%><%@pageimport="pojo.UserInfo,java.util.*"%><%Stringpath=request.getContextPath();StringbasePath=request.getScheme()+"://"+request.getServerName()+":"+request.getServerPort()+path+"/";%><%//初始化数据List<UserInfo>list=newArrayList<UserInfo>();//一级部门编号,一级部门名称,二级部门名称list.add(newUserInfo("01","行政部门","人事部门"));list.add(newUserInfo("01","行政部门","财务部门"));list.add(newUserInfo("01","行政部门","后勤部门"));list.add(newUserInfo("02","开发部一部","第一小部"));list.add(newUserInfo("02","开发部一部","第二小部"));list.add(newUserInfo("03","开发部二部","第一小部"));list.add(newUserInfo("04","开发部三部","第一小部"));list.add(newUserInfo("04","开发部三部","第二小部"));list.add(newUserInfo("04","开发部三部","第三小部"));list.add(newUserInfo("04","开发部三部","第四小部"));%><!DOCTYPEHTMLPUBLIC"-//W3C//DTDHTML4.01Transitional//EN"><html><head><basehref="<%=basePath%>"><title>MyJSP'MyJsp.jsp'startingpage</title><metahttp-equiv="pragma"content="no-cache"><metahttp-equiv="cache-control"content="no-cache"><metahttp-equiv="expires"content="0"><metahttp-equiv="keywords"content="keyword1,keyword2,keyword3"><metahttp-equiv="description"content="Thisismypage"><!--<linkrel="stylesheet"type="text/css"href="styles.css">--></head><style>.even{background-color:#EEEEEE;}.odd{background-color:#888888;}td,th{border-top:1pxsolid#000000;border-right:1pxsolid#000000;}table{border-bottom:1pxsolid#000000;border-left:1pxsolid#000000;}</style><body><tabletitle="jsp生成方式"cellspacing=0cellpadding=0width="98%"id='table1'><tr><th>一级部门</th><th>二级部门</th></tr><%List<Integer>rowSpanLst=newArrayList<Integer>();StringlastCode="";intcount=0;for(inti=0;i<list.size();i++){UserInfouser=list.get(i);if(user.getFirstDepartCode().equals(lastCode)){count++;}else{lastCode=user.getFirstDepartCode();if(count!=0)rowSpanLst.add(count);count=1;}}rowSpanLst.add(count);count=0;intindex=0;for(inti=0;i<list.size();i++){UserInfouser=list.get(i);%><tr><%if(count<=1){count=rowSpanLst.get(index++);%><tdrowspan='<%=count%>'><%=user.getFirstDepartName()%></td><%}else{count--;}%><td><%=user.getSecondDepartName()%></td></tr><%}%></table><tabletitle="js生成方式"cellspacing=0cellpadding=0width="98%"id='table2'><tr><th>一级部门</th><th>二级部门</th></tr><%for(inti=0;i<list.size();i++){UserInfouser=list.get(i);%><tr><td><%=user.getFirstDepartName()%><inputtype='hidden'name="orgCode"value="<%=user.getFirstDepartCode()%>"/></td><td><%=user.getSecondDepartName()%></td></tr><%}%></table><scriptdefer>try{vartableObj=document.getElementById('table2');varheaderCount=1;varorgCodeArr=document.getElementsByName('orgCode');varlastCode="";varrowSpanArr=newArray();varcount=0;for(vari=0;i<orgCodeArr.length;i++){if(orgCodeArr[i].value==lastCode){count++;}else{lastCode=orgCodeArr[i].value;if(count!=0)rowSpanArr.push(count);count=1;}}rowSpanArr.push(count);count=0;varindex=headerCount;for(vari=0;i<rowSpanArr.length;i++){varrowSpan=rowSpanArr[i];if(rowSpan>1){varrowObj=tableObj.rows[index];rowObj.cells[0].rowSpan=rowSpan;for(varj=index+1;j<index+rowSpan;j++){tableObj.rows[j].removeChild(tableObj.rows[j].cells[0]);}}index+=rowSpan;}}catch(e){alert(e)}</script></body></html>