http://www.ztree.me/v3/demo.php#_101
<%@ Import namespace="Sundear.Permission" %>
<%@ Import namespace="Sundear.Base.Common" %>
<%@ Import namespace="Sundear.Base" %>
<%@ Import namespace="BusinessCore" %>
<%@ Import namespace="BusinessCore.Search" %>
<%
IProductionPhaseCode iproductionPhaseCode =Branson.BusinessCore.BusinessCoreEngine.GetProvider<IProductionPhaseCode>();
SearchProductionPhaseCode search=new SearchProductionPhaseCode ()
{
SearchType = SearchTypeEnum.Total,
};
IList<ProductionPhaseCodeInfo> list = iproductionPhaseCode.SearchProductionPhaseCode(search);
list = Branson.Management.Controllers.Production.ProductionController.SortPlannerPhaseCode(list.ToList());
string zNodes = JsonHelper.ToJson(list.Select(s => new
{
name = s.PhaseCodeName,
id = s.PhaseCodeID,
pId = s.PhaseCode,
Checked = true
}));
%>
<SCRIPT type="text/javascript">
var setting = {
check: {
enable: true,
chkStyle: "checkbox",
chkboxType: { "Y": "ps", "N": "ps" }
},
view: {
showLine: false,
selectedMulti: false,
showIcon :false,
},
data: {
simpleData: {
enable: true
}
},
callback: {
onCheck: zTreeOnCheck
}
};
var setting1 = {
check: {
enable: true,
chkStyle: "radio",
radioType:"all"
},
view: {
showLine: false,
selectedMulti: false,
showIcon: false,
},
data: {
simpleData: {
enable: true
}
},
callback: {
onCheck: zTreeOnCheck1
}
};
//此方法为选择方法,将选择的节点的id保存到hidden中,我这边项目需求的是单选,所以直接用的是$("#hiddenBox").html(),假若是多选,可以考虑$("#hiddenBox").append(...)
function zTreeOnCheck1(event, treeId, treeNode) {
var hiddenString = '<input type="hidden" name="allocation" value="' + treeNode.id + '">';
$("#hiddenBox").html(hiddenString);
};
function zTreeOnCheck(event, treeId, treeNode) {
if (treeNode.isParent) {
$.each(treeNode.children, function (index, value) {
if (treeNode.checked) {
appendHidden(value.id);
} else {
removeHidden(value.id);
}
});
} else {
if (treeNode.checked) {
appendHidden(treeNode.id);
} else {
removeHidden(treeNode.id);
}
}
};
function appendHidden(id) {
var hiddenString = '<input type="hidden" name="allocation[]" value="' + id + '">';
$("#hiddenBox").append(hiddenString);
}
function removeHidden(id) {
$("#hiddenBox>input").each(function (index, element) {
if ($(this).val() == id) {
$(this).remove();
}
});
}
var zNodes =<%=zNodes%>
function onCheck(e, treeId, treeNode) {
count();
}
function setTitle(node) {
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
var nodes = node ? [node] : zTree.transformToArray(zTree.getNodes());
for (var i = 0, l = nodes.length; i < l; i++) {
var n = nodes[i];
n.title = "[" + n.id + "] isFirstNode = " + n.isFirstNode + ", isLastNode = " + n.isLastNode;
zTree.updateNode(n);
}
}
function count() {
function isForceHidden(node) {
if (!node.parentTId) return false;
var p = node.getParentNode();
return !!p.isHidden ? true : isForceHidden(p);
}
var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
checkCount = zTree.getCheckedNodes(true).length,
nocheckCount = zTree.getCheckedNodes(false).length,
hiddenNodes = zTree.getNodesByParam("isHidden", true),
hiddenCount = hiddenNodes.length;
for (var i = 0, j = hiddenNodes.length; i < j; i++) {
var n = hiddenNodes[i];
if (isForceHidden(n)) {
hiddenCount -= 1;
} else if (n.isParent) {
hiddenCount += zTree.transformToArray(n.children).length;
}
}
$("#isHiddenCount").text(hiddenNodes.length);
$("#hiddenCount").text(hiddenCount);
$("#checkCount").text(checkCount);
$("#nocheckCount").text(nocheckCount);
}
function showNodes() {
var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
nodes = zTree.getNodesByParam("isHidden", true);
zTree.showNodes(nodes);
setTitle();
count();
}
function hideNodes() {
var zTree = $.fn.zTree.getZTreeObj("treeDemo"),
nodes = zTree.getSelectedNodes();
if (nodes.length == 0) {
alert("Please select one node at least.");
return;
}
zTree.hideNodes(nodes);
setTitle();
count();
}
$(function () {
//alert(1);
//$.fn.zTree.init($("#treeDemo"), setting, zNodes);
//$.fn.zTree.init($("#treeDemo"), setting1, zNodes);
})
function GetCheID()
{
var zTree = $.fn.zTree.getZTreeObj("treeDemo");
alert(zTree);
var nodes = zTree.getSelectedNodes();
alert(nodes[0]);
var treeNode = nodes[0];
var treeNodeP = treeNode.parentTId ? treeNode.getParentNode() : null;
for (var i = 0; i < treeNode.children.length; i++) {
var childNode = treeNode.children[i];
alert('childNode.name: ' + childNode.name);
}
var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
var nodes = treeObj.getSelectedNodes();
}
</SCRIPT>
<div class="content_wrap">
<ul id="treeDemo" class="ztree treeContainer" style="margin-top: 10px;height:220px;"></ul>
<div style="display:none;" id="hiddenBox"></div>
</div>