2012-06-12 26 views
4
tree.dynatree({ 
     initAjax: { 
      url: "../Users/GetTree" 
     }, 
     checkbox: true, 
     selectMode: 2, 
     fx: { height: "toggle", duration: 200 }, 
     persist: true, 
     clickFolderMode: 1, 
     autoFocus: false, 

     onClick: function (node, event) { 
      .... 
     } 
    }  

選擇節點我有類樹節點如何在服務器端dynatree

public class TreeNode 
{ 
     ..... 

     public TreeItemsAttr attr { get; set; } 

     public string addClass { get; set; } 
} 

和類TreeItemsAttr

public class TreeItemsAttr 
{ 
    public string id { get; set; } 

    public bool canHaveSubs { get; set; } 

    public bool selectable { get; set; } 

    public bool isSelected { get; set; } 

    public string docDate { get; set; } 
} 

所以,在我行動我設置了一些樹節點isSelected=true並添加類addClass="dynatree-selected",但是當我撥打node.tree.getSelectedNodes()時,我收到[]

如何在服務器端進行設置,以便選擇一些節點?

我也嘗試添加TreeNode屬性選擇並設置爲true,但它沒有幫助我。

回答

0

dynatree document page(在章節:5.3處理選擇事件)中有一個針對該目標的示例。

onSelect: function(flag, node) { 
     if(! flag) 
      alert("You deselected node with title " + node.data.title); 
     var selectedNodes = node.tree.getSelectedNodes(); 
     var selectedKeys = $.map(selectedNodes, function(node){ 
      return node.data.key; 
     }); 
     alert("Selected keys: " + selectedKeys.join(", ")); 
    } 

,結果頁面:http://wwwendt.de/tech/dynatree/doc/sample-select.html

這樣在客戶端的工作,但我想你可以把選中的變量到你的服務器。

1

你遵循的Alper的例子之後,你就可以將selectedKeys保存到一個隱藏字段,使可用這些值來你在服務器端:

var arraySelKeys = selectedKeys.toString().split(","); 
$("[id$=_hdnSelKeys]").val(arraySelKeys.toString());