使用struts-menu制作树型菜单问题--请求高人指点 我用使用struts-menu技术实现了一个树型结构的复选框,就是选择功能,是用树形结构展现出啦的,每个节点前有一个checkbox框供选择使用,现在我想选中某一节点的checkbox的时候能够让其所有子节点也全部被选中,有没有什么好的方法? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 把关键代码贴出来<menu:useMenuDisplayer name="Velocity" config="commons/tree/templates/checkbox_xtree.html" bundle="org.apache.struts.action.MESSAGE" repository="examplesRepository"> <c:forEach var="menu" items="${examplesRepository.topMenus}"> <menu-el:displayMenu name="${menu.name}"/> </c:forEach> </menu:useMenuDisplayer> 这个应该要用到AJAX吧。你在每个多选框都要设置JS监听事件,一旦某个结点被选中,则将这个结点的ID通过XMLHTTPREQUEST提交到SERVLET,然后在SERVLET找出当前结点的所有子结点并将数据返回到原页面。 最近用到一个项目刚好用到了楼主的这点,不过没有用到AJAX,简单用了下JQUERY的框架,关于树形菜单则是用到了一个插件,是JQUERY的tree_view插件。你想实现选择一上级节点的复选框,下级节点则全部选中。下面是我的部分代码,供参考。 <SCRIPT TYPE="text/javascript"> // 选择所有 function selectAll(checkedValue){ $("input[id^='cb_']").attr("checked", checkedValue); //点击全选按钮试下面所有的按钮状态和全选按钮保持一致 } $(function(){ $("#tree").treeview();//这行代码是关于树的代码--关键代码 <c:forEach items="${role.resources}" var="resource"> $("[id='cb_${resource.id}']").attr("checked",true); </c:forEach> $("input[id^='cb_']").click(function() { var checkvalue = this.checked; if(checkvalue) { $(this).parents("li").children("[id^='cb_']").attr("checked",true); $(this).parent("li").find("[id^='cb_']").attr("checked",true); }else { $(this).parent("li").find("[id^='cb_']").attr("checked",false); var checkedCount = $(this).parent("li").siblings("li").children("[id^='cb_']:checked").size(); if( checkedCount == 0 ){ $(this).parent("li").parent("ul").siblings("[id^='cb_']").attr("checked", false); } } }); }); </SCRIPT> 有这样的样式啊,struts-menu我记得有好多样式,有你要的样式,你找找吧!!! 希望你不是又来倒分的。http://topic.csdn.net/u/20100712/20/f34d89b1-2839-469a-a031-ae5d21a8652c.html 求教个Spring2+struts2+hibernate3框架下问题 struts2 freemarker 不替换${}里面内容 有没有比较好的开源的java知识库项目 请教问题 请教:我是JSP初学者,怎么学啊 请教多线程JOIN问题 关于soap协议实现问题??急!请各位高手帮忙 关于web.xml的疑问 struts的属性文件不能添加中文 学习webserice买什么书比较好? 有谁知道这个设计该怎样做呢?先谢谢了 利用Hibernate Criteria的分页处理,遇到的2个小问题
bundle="org.apache.struts.action.MESSAGE" repository="examplesRepository">
<c:forEach var="menu" items="${examplesRepository.topMenus}">
<menu-el:displayMenu name="${menu.name}"/>
</c:forEach>
</menu:useMenuDisplayer>
你在每个多选框都要设置JS监听事件,一旦某个结点被选中,则将这个结点的ID通过XMLHTTPREQUEST提交到SERVLET,然后在SERVLET找出当前结点的所有子结点并将数据返回到原页面。
<SCRIPT TYPE="text/javascript">
// 选择所有
function selectAll(checkedValue){
$("input[id^='cb_']").attr("checked", checkedValue);
//点击全选按钮试下面所有的按钮状态和全选按钮保持一致
}
$(function(){
$("#tree").treeview();//这行代码是关于树的代码--关键代码
<c:forEach items="${role.resources}" var="resource">
$("[id='cb_${resource.id}']").attr("checked",true);
</c:forEach>
$("input[id^='cb_']").click(function() {
var checkvalue = this.checked;
if(checkvalue) {
$(this).parents("li").children("[id^='cb_']").attr("checked",true);
$(this).parent("li").find("[id^='cb_']").attr("checked",true);
}else {
$(this).parent("li").find("[id^='cb_']").attr("checked",false);
var checkedCount = $(this).parent("li").siblings("li").children("[id^='cb_']:checked").size();
if( checkedCount == 0 ){
$(this).parent("li").parent("ul").siblings("[id^='cb_']").attr("checked", false);
}
}
});
});
</SCRIPT>