2014-11-24 1 views
0

나는이 문제를 가지고있다. 나는 asp와 jstree checkbox plugin으로 작업하고 있는데, 선택된 노드 (그의 자식이있는 부모)보다 우선 순위가 높다. 그 다음 분할합니다. 왜냐하면 저는 db에 대한 검색을해야하고 부모와 자식이 필요합니다. 체크 노드와 체크되지 않은 상태를 구별하는 데 사용할 수있는 두 클래스가 Jstree에서ASP.NET jstree checkbox 모든 선택된 노드와 자식을 얻는다.

<!DOCTYPE html> 
 

 
<html xmlns="http://www.w3.org/1999/xhtml"> 
 
<head runat="server"> 
 
    <title></title> 
 

 
    <link href="jstree-bootstrap-theme-master/dist/libs/bootstrap/css/bootstrap-theme.min.css" rel="stylesheet" /> 
 
    <link href="jstree-bootstrap-theme-master/dist/libs/bootstrap/css/bootstrap.min.css" rel="stylesheet" /> 
 

 
    <link href="jstree-bootstrap-theme-master/dist/themes/proton/style.min.css" rel="stylesheet" /> 
 

 
    <script src="https://code.jquery.com/jquery-1.11.0.min.js"></script> 
 
    <script src="jstree-bootstrap-theme-master/dist/libs/bootstrap/js/bootstrap.min.js"></script> 
 
    <script src="jstree-bootstrap-theme-master/dist/jstree.min.js"></script> 
 
    
 
</head> 
 
<body> 
 

 
    <div id="container"> 
 
     <ul> 
 
      <li>Root node 
 
     <ul> 
 
      <li id="child_node">Child node</li> 
 
     </ul> 
 
      </li> 
 
     </ul> 
 
    </div> 
 

 
    <button type="button" class="btn btn-primary" id="getChecked">Botón normal</button> 
 
    
 

 

 

 

 
    <script type="text/javascript"> 
 
     $('#container').jstree({ 
 
      'plugins': ["wholerow", "checkbox"], 
 
      'core': { 
 
       'data': [{ 
 
        "text": "RRRAAAA", 
 
        "children": [ 
 
         { 
 
          "text": "S1", 
 
          "icon": "glyphicon glyphicon-chevron-right", 
 
          "state": { 
 
           "selected": false 
 
          } 
 
         }, 
 
        { 
 
         "text": "S2", 
 
         "icon": "glyphicon glyphicon-chevron-right" 
 
        }, 
 
        { 
 
         "text": "A2", 
 
         "icon": "glyphicon glyphicon-chevron-right" 
 
        }, 
 
        { 
 
         "text": "A2", 
 
         "icon": "glyphicon glyphicon-chevron-right" 
 
        }, 
 
        { 
 
         "text": "F", 
 
         "icon": "glyphicon glyphicon-chevron-right" 
 
        }] 
 
       }], 
 
       'themes': { 
 
        'name': 'proton', 
 
        'responsive': true 
 
       } 
 
      } 
 
     }).on('select_node.jstree', function (e, data) { 
 
     var i, j, nid; 
 

 
     for (i = 0, j = data.selected.length; i < j; i++) { 
 
      nid = data.instance.get_node(data.selected[i]).id; 
 

 
      alert(nid); 
 

 
     } 
 
    }); 
 
     
 
     
 
     
 

 
     $(function() { 
 

 
      $("#getChecked").click(function() { 
 

 
       $("#tree").jstree("get_checked", null, true).each(function (i, e) { 
 
        console.log($(this).attr("id")); 
 
        alert($(this).attr("id")); 
 
       }); 
 
      }); 
 

 
     }); 
 
    </script> 
 

 
</body> 
 
</html>

답변

0

:

이 내 코드입니다. 그들은 'jstree-확인'과 'jstree-되지 않은'각각

그래서 당신은 아래의 논리

var nodeCheckedCount= $('.jstree-unchecked').length;  
var Ids = ''; 
     if (nodeCheckedCount= > 0) { 
      for (i = 0; i < nodeCheckedCount= ; i++) { 
       var temp = $($('.jstree-unchecked')[i]).attr('id') 
       if (Ids == "") { 
        Ids += temp; 
       } 
       else { 
        Ids= Ids + "," + temp; 
       } 
      } 
console.log(Ids) 
-1

사실이 코드가 작동을 사용할 수 있습니다되지 않은 모든 노드를 얻기 위하여, 그러나 아니다 내가 원하는 건, 내가 전체 경로가 필요하지만, 버튼을 클릭 할 때 모든 노드를 선택해야합니다. 이 코드에서는 문제가 발생합니다. 부모를 확인하면 경고가 표시되지만 모든 자식 노드의 전체 경로는 표시되지 않고 경고가 여러 번 표시되지만 전체 경로는 표시되지 않습니다. 전체 경로는 manully 모든 노드를 확인할 때 작동합니다.

.on('select_node.jstree', function (e, data) { 
     var selectedNodes = $('#container').jstree(true).get_selected(); 
     for (var node in selectedNodes) { 
      var path = $('#container').jstree(true).get_path(data.node, "/"); 
      alert(path); 
     }   
    }); 
+0

작동하지 않습니다. –