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确实不错。。。