今天总算把部门多选的效果整出来 见图: 先共享核心代码: 1:js脚本
var treeHTML = ""; var checkList = new Array(); /*only init here*/ var barString = "└";/*┝└*/ var degreeString = " "; function makeTree(id,text,value,parentid,isCheck) { this.id = id; this.text = text; this.value = value; this.parentid = parentid; this.isCheck=isCheck; } function dispCheck(option,degree) { for (var i=1;itreeHTML += degreeString; } treeHTML += barString; treeHTML += " "; treeHTML += option.text+" "; } function dispKidsByPid(pid,degree) { for (var i=0;iif (pid==checkList[i].parentid) { dispCheck(checkList[i],degree); dispKidsByPid(checkList[i].id,degree+1); } } } function checkOption(option) { var deptCheckList=document.getElementsByName("deptOption"); //检查父元素 if(option.parentId!=0){ var parentChecked="0"; for(var i=0;iif(deptCheckList[i].parentId==option.parentId){ if(deptCheckList[i].checked){ parentChecked="1"; break; } } } if(parentChecked=="1") document.getElementById("dept_"+option.parentId).checked=true; else document.getElementById("dept_"+option.parentId).checked=false; checkOption(document.getElementById("dept_"+option.parentId)); } } function checkSubOption(option){ var deptCheckList=document.getElementsByName("deptOption"); //检查子元素 for(var i=0;iif("dept_"+deptCheckList[i].parentId==option.id){ deptCheckList[i].checked=option.checked; checkSubOption(deptCheckList[i]); } } }
2:页面:
SchoolRoleVo schoolRoleVo = (SchoolRoleVo) request.getAttribute("schoolRoleVo");
List subjecGgroupList = (List) request.getAttribute("subjecGgroupList");
List gradeGroupList = (List) request.getAttribute("gradeGroupList");
List deptList = (List) request.getAttribute("deptList");
List groupList = (List) request.getAttribute("groupList");
String roleType=request.getParameter("roleType");
SchoolRolePrismsVo schoolRolePrismsVo=(SchoolRolePrismsVo)request.getAttribute("schoolRolePrismsVo");
%>
3:css
li { list-style-type: none; } .basic { width:20em; } .basic { width: 260px; font-family: verdana; border: 1px solid black; } .basic div { background-color: #eee; } .basic p { margin-bottom : 10px; border: none; text-decoration: none; font-weight: bold; font-size: 10px; margin: 0px; padding: 10px; } .basic a { cursor:pointer; display:block; padding:5px; margin-top: 0; text-decoration: none; font-weight: bold; font-size: 12px; color: black; background-color: #00a0c6; border-top: 1px solid #FFFFFF; border-bottom: 1px solid #999; background-image: url("AccordionTab0.gif"); } .basic a:hover { background-color: white; background-image: url("AccordionTab2.gif"); } .basic a.selected { color: black; background-color: #80cfe2; background-image: url("AccordionTab2.gif"); }