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) {
....
}
}
在服务器端我有类TreeNode
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属性的select和setup添加为true,但它对我没有帮助。
答案 0 :(得分:1)
在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 :(得分:1)
在您按照Alper的示例后,您可以将selectedKeys保存到隐藏字段,在服务器端为您提供这些值:
var arraySelKeys = selectedKeys.toString().split(",");
$("[id$=_hdnSelKeys]").val(arraySelKeys.toString());