2016-11-01 95 views
0

我正在嘗試爲現有動態樹視圖中的特定節點創建一個「動態useraccess」。從現有TreeView的選中複選框創建TreeView

主TreeView包含複選框,並從數據庫填充。 我有數據庫中的第二個表,存儲此TreeView的使用權限。

問題是,當我試圖設置useraccess沒有在主樹視圖中的「3狀態複選框」和某些節點的Ref-ID將不會成爲回發的一部分。我使用的JavaScript:

Treeview in web form check child nodes on parent node check

我不能建立從回傳數據的新的TreeView由於缺乏父節點(參考節點),是不是回發的一部分。

下面突出顯示的treeview圖像顯示的問題,當取消選中內閣2,房間2未選中,但位置1和Demotop也是如此。 Room1的參考節點(位置1)不是選中複選框的一部分,然後數據庫中的引用將丟失! 關於如何解決這個問題的任何建議?

[enter image description here [enter image description here]

回答

0

結束了使用一個Dynatree而不是使用樹視圖。

與此支持: How can I read parent nodes with partly selected child nodes

此代碼解決我的問題:

$(function() { 
     $("#tree").dynatree({ 
      checkbox: true, 
      selectMode: 3, 
      onSelect: function (select, node) { 
       var selKeys = $.map(node.tree.getSelectedNodes(), function (node) { 
        return node.data.key; 
       }); 
       var partsel = new Array(); 
       $(".dynatree-partsel:not(.dynatree-selected)").each(function() { 
        var node = $.ui.dynatree.getNode(this); 
        partsel.push(node.data.key); 
       }); 

       selKeys = selKeys.concat(partsel);     
      }, 
      onClick: function (node, event) { 

       if (node.getEventTargetType(event) == "title") 
        node.toggleSelect(); 
      }, 
      onDblClick: function (node, event) { 
       node.toggleSelect(); 
      }, 
      onKeydown: function (node, event) { 
       if (event.which == 32) { 
        node.toggleSelect(); 
        return false; 
       } 
      }   
     }); 
    });