ZTree学习之旅
2天时间研究了很多树,看过很多DOM最后,选择了Ztree了。
终于搞定!
以下代码仅供参考
/// <summary> /// 将DataTable转换成Json格式 /// </summary> /// <param name="jsonName"></param> /// <param name="dt"></param> /// <returns></returns> public static string DataTableToJson(string jsonName, DataTable dt, string BeforCatogory) { string Json = ""; Json = "["; if (dt.Rows.Count > 0) { for (int i = 0; i < dt.Rows.Count; i++) { Json += "{"; //分类 if (BeforCatogory == "CgId") { Json += @"id:'SoId%" + dt.Rows[i]["SoId"].ToString() + "|" + dt.Rows[i]["SoName"].ToString() + @"',"; Json += @"name:'" + dt.Rows[i]["SoName"].ToString() + @"',"; Json += @"url:'',"; Json += @"isParent:'true'"; } //分类 else if (BeforCatogory == "SoId") { Json += @"id:'PrId%" + dt.Rows[i]["PrId"].ToString() + "|" + dt.Rows[i]["PrName"].ToString() + @"',"; Json += @"name:'" + dt.Rows[i]["PrName"].ToString() + @"',"; Json += @"url:'',"; Json += @"isParent:'false'"; } //分类 else { Json += @"id:'CgId%" + dt.Rows[i]["CgId"].ToString() +"|"+ dt.Rows[i]["CgName"].ToString() + @"',"; Json += @"name:'" + dt.Rows[i]["CgName"].ToString() + @"',"; Json += @"url:'',"; Json += @"isParent:'true'"; } Json += "}"; if (i < dt.Rows.Count - 1) { Json += ","; } } } Json += "]"; return Json.ToString();
<script type="text/javascript">
var setting = {
check: {
enable: true,
chkboxType :{ "Y" : "s", "N" : "s" }
},
async: {
//异步加载
enable: true,
url: getUrl
},
callback: {
onCheck: zTreeOnCheck
}
};
function zTreeOnCheck(event, treeId, treeNode) {
alert(treeNode.tId + ", " + treeNode.name + "," + treeNode.checked);
};
function filter(treeId, parentNode, childNodes) {
if (!childNodes) return null;
for (var i = 0, l = childNodes.length; i < l; i++) {
childNodes[i].name = childNodes[i].name.replace(/\.n/g, '.');
}
return childNodes;
}
function getUrl(treeId, treeNode) {
var param = treeNode.id;
return "TreeCategory.ashx?id=" +escape(param);
}
function createTree() {
$.ajax({
url: 'TreeCategory.ashx', //url action是方法的名称
type: 'POST',
dataType: "text", //可以是text,如果用text,返回的结果为字符串;如果需要json格式的,可是设置为json
ContentType: "application/json; charset=utf-8",
success: function (data) {
$.fn.zTree.init($("#treeDemo"), setting, eval('(' + data + ')'));
},
error: function (msg) {
alert("数据加载失败!");
}
});
}
$(document).ready(function () {
createTree();
});
//获取所有选中节点的值
function GetCheckedAll() {
var treeObj = $.fn.zTree.getZTreeObj("treeDemo");
var nodes = treeObj.getCheckedNodes(true);
var msg = "name--id--pid\n";
for (var i = 0; i < nodes.length; i++) {
msg += nodes[i].name + "--" + nodes[i].id + "--" + nodes[i].pId + "\n";
}
alert(msg);
}
</script>
到此结束,Ztree确实不错。。。
浙公网安备 33010602011771号