前台代碼
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title></title>
<script src="/scripts/Ztree/script/jquery-1.4.2.js" type="text/javascript"></script>
<link href="/scripts/Ztree/style/zTreeStyle/zTreeStyle.css" rel="stylesheet" type="text/css" />
<link href="/scripts/Ztree/style/demoStyle/demo.css" rel="stylesheet" type="text/css" />
<script src="/scripts/Ztree/script/jquery.ztree-2.6.js" type="text/javascript"></script>
<script type="text/javascript">
var zTree;
// var type="CognosConnectionString";
// //獲取參數
// var Request = new Object();
// Request = GetRequest();
// if (Request['type'] != null && Request['type'] != "")
// type = Request['type'];
var demoIframe;
//setting 是 zTree 的全部設置參數集合,采用 JSON 結構,便於靈活配置
var setting = {
isSimpleData: true,
treeNodeKey: "id", //設置節點唯一標識屬性名稱
treeNodeParentKey: "pId", //設置節點的父節點唯一標識屬性名稱
nameCol: "name", //設置 zTree 顯示節點名稱的屬性名稱,此處默認為Name
showLine: true, //在樹型中是否顯示線條樣式
root: { //zTree數據節點的根,全部節點數據都處於 root.nodes 內
isRoot: true,
nodes: []
},
async: true,
asyncUrl: "AjaxHandle/GetTableField.ashx?type=<%=type %>&time="+Math.random(),
asyncParam: ["id","pId","name"], //異步調用時傳到后台的參數
callback:{
asyncSuccess: zTreeOnAsyncSuccess
}
};
var treeNodes = [<%= NodesData%>];
$(document).ready(function() {
zTree = $("#treeid").zTree(setting, treeNodes);
});
function zTreeOnAsyncSuccess(event, treeId, treeNode, msg) {
}
//讀取URL
function GetRequest() {
var url = location.search; //獲取url中"?"符后的字串
var theRequest = new Object();
if (url.indexOf("?") != -1) {
var str = url.substr(1);
strs = str.split("&");
for (var i = 0; i < strs.length; i++) {
theRequest[strs[i].split("=")[0]] = unescape(strs[i].split("=")[1]);
}
}
return theRequest;
}
function url(type) {
window.location.href = "SQL.aspx?type=" + type.value;
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<ul id="treeid" class="tree" >
</ul>
</div>
</form>
</body>
</html>
后台代碼:第一次調用一級數據
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
if (Request["type"] != null)
type = Request["type"].ToString();
List<string> treenodes = new List<string>();
DataTable dt = new SystemClass(type).GetTableName();
for (int i = 0; i < dt.Rows.Count; i++)
{
//此處為了簡化,並沒有查詢此級的類別是否有子類.直接設置 'isParent':true
string node = string.Format("{{ \"id\":{0}, \"pId\":{1}, \"name\":\"{2}\",\"url\":\"\",\"isParent\":true}}",
dt.Rows[i]["id"], dt.Rows[i]["ParentID"], dt.Rows[i]["name"]);
treenodes.Add(node);
}
string Strtest = string.Join(",", treenodes.ToArray());
NodesData.Append(Strtest);
}
}
GetTableField.ashx
異步調用返回的JOSON值
context.Response.ContentType = "text/plain";
string parentId = context.Request["id"];
string type = context.Request["type"];
List<string> treenodes = new List<string>();
StringBuilder NodesData = new StringBuilder();
DataTable dt = new SystemClass(type).GetTableFieldByParentid(parentId);
for (int i = 0; i < dt.Rows.Count; i++)
{
//此處為了簡化,並沒有查詢此級的類別是否有子類.直接設置 'isParent':true
string node = string.Format("{{ \"id\":{0}, \"pId\":{1}, \"name\":\"{2}\",\"url\":\"\",\"isParent\":false}}",
dt.Rows[i]["id"], dt.Rows[i]["ParentID"], dt.Rows[i]["name"]);
treenodes.Add(node);
}
string Strtest = string.Join(",", treenodes.ToArray());
NodesData.Append(Strtest);
context.Response.Write("[" + NodesData + "]");
