我用使用struts-menu技术实现了一个树型结构的复选框,就是选择功能,是用树形结构展现出啦的,每个节点前有一个checkbox框供选择使用,现在我想选中某一节点的checkbox的时候能够让其所有子节点也全部被选中,有没有什么好的方法?

解决方案 »

  1.   

    把关键代码贴出来<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>
      

  2.   

    这个应该要用到AJAX吧。
    你在每个多选框都要设置JS监听事件,一旦某个结点被选中,则将这个结点的ID通过XMLHTTPREQUEST提交到SERVLET,然后在SERVLET找出当前结点的所有子结点并将数据返回到原页面。
      

  3.   

    最近用到一个项目刚好用到了楼主的这点,不过没有用到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>
      

  4.   

    有这样的样式啊,struts-menu我记得有好多样式,有你要的样式,你找找吧!!!
      

  5.   

    希望你不是又来倒分的http://topic.csdn.net/u/20100712/20/f34d89b1-2839-469a-a031-ae5d21a8652c.html