此博文只是针对项目中应用到的总结,想了解zTree的其它用法,可以参考zTree官网: http://www.ztree.me/v3/main.php#_zTreeInfo
效果图:
javascript代码:
<script src="/Scripts/jquery-1.8.3.min.js" type="text/javascript"></script>
<script src="/Scripts/tree/jquery.ztree.all-3.5.min.js" type="text/javascript"></script>
<script type="text/javascript">
var zNodesycBQ = [<%=GetSelectBQ(3) %>];//后台取出的ztree要求的JSON格式数据
var zNodesycHLCS = [<%=GetSelectHLCS(3) %>]; //后台取出的ztree要求的JSON格式数据
//在点击之前执行,如果已选择则设置不选中,否则设置选中
function setBeforeClick(domId, treeNode) {
var zTree = $.fn.zTree.getZTreeObj(domId);
if (zTree != null) {
zTree.checkNode(treeNode, !treeNode.checked, true, true);
}
return true;
}
//点击之后执行 计算等操作 病情
function onCheckBQ(e, treeId, treeNode) {
setOnCheckBQ("yc", treeNode);
}
function setOnCheckBQ(domId, treeNode) {
var zTree = $.fn.zTree.getZTreeObj("tree" + domId + "BQ");
if (zTree != null) {
var nodes = zTree.getCheckedNodes(true);
var xuanxian = "";
var zongfen = 0;
var b = false;
for (var i = 0, l = nodes.length; i < l; i++) {
var strs = nodes[i].ename.split('|');
xuanxian += strs[0] + ",";
if (strs[0] == 15) {//选择已发生压疮
b = true;
}
zongfen += parseInt(strs[1]);
}
if (xuanxian.length > 0) xuanxian = xuanxian.substring(0, xuanxian.length - 1);
//大于设置分值,或者有疮,则需要勾选翻身
var hlcsTree = $.fn.zTree.getZTreeObj("tree" + domId + "HLCS");
if (zongfen >= parseInt($("#txtEvaluationScore").val()) || b) {
hlcsTree.checkNode(hlcsTree.getNodeByParam("id", 2, null), true, true);
} else {
hlcsTree.checkNode(hlcsTree.getNodeByParam("id", 2, null), false, true);
}
//小于指定分值或者有疮,需要预报
if (zongfen >= parseInt($("#txtEvaluationScore").val()) || b) {
$("#tfootYB").show();
$("#tableYB").show();
$("#btPostionAdd").show();
$("#bt" + domId + "NMRC").removeAttr("disabled");
$("#bt" + domId + "NMRC").removeClass("aspNetDisabled");
} else {
$("#tfootYB").hide();
$("#tableYB").hide();
$("#btPostionAdd").hide();
$("#bt" + domId + "NMRC").attr("disabled", "disabled");
$("#bt" + domId + "NMRC").addClass("aspNetDisabled");
}
$("#lbl" + domId + "ZF").text(zongfen);
$("#txt" + domId + "XX").val(xuanxian);
$("#txt" + domId + "ZF").val(zongfen);
}
}
//点击之后执行 计算等操作 措施
function onCheckCS(e, treeId, treeNode) {
setOnCheckCS("yc", treeNode);
}
function setOnCheckCS(domId, treeNode, txtXuanXianId) {
var zTree = $.fn.zTree.getZTreeObj("tree" + domId + "HLCS");
if (zTree != null) {
var nodes = zTree.getCheckedNodes(true);
var xuanxian = "";
for (var i = 0, l = nodes.length; i < l; i++) {
xuanxian += nodes[i].ename + ",";
}
if (xuanxian.length > 0) xuanxian = xuanxian.substring(0, xuanxian.length - 1);
$("#txt" + domId + "HLCS").val(xuanxian);
}
}
var settingycBQ = { check: { enable: true, chkStyle: "checkbox", chkboxType: { "Y": "ps", "N": "ps"} }, data: { simpleData: { enable: true} }, callback: { beforeClick: beforeClickycBQ, onCheck: onCheckBQ} };
function beforeClickycBQ(treeId, treeNode) { setBeforeClick("treeycBQ", treeNode); };
var settingycCS = { check: { enable: true, chkStyle: "checkbox", chkboxType: { "Y": "ps", "N": "ps"} }, data: { simpleData: { enable: true} }, callback: { beforeClick: beforeClickycCS, onCheck: onCheckCS} };
function beforeClickycCS(treeId, treeNode) { setBeforeClick("treeycHLCS", treeNode); };
$(function () {
$.fn.zTree.init($("#treeycBQ"), settingycBQ, zNodesycBQ);
$.fn.zTree.init($("#treeycHLCS"), settingycCS, zNodesycHLCS);
//评分分值小于预报分值并且 已发生压疮未选中
if (parseInt($("#txtycZF").val()) < parseInt($("#txtEvaluationScore").val()) && $("#treeycBQ_12_check").attr("class") == "button chk checkbox_false_full") {
$("#tfootYB").hide();
$("#tableYB").hide();
$("#btPostionAdd").hide();
}
});
</script>