前台页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Ztree.aspx.cs" Inherits="Admin_Ztree" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
<script src="../JS/jquery-1.5.2.min.js" type="text/javascript"></script>
<script src="../JS/jquery.ztree.core-3.5.min.js" type="text/javascript"></script>
<link href="../CSS/zTreeStyle/zTreeStyle.css" rel="stylesheet" type="text/css" />
<script type="text/javascript">
var zTree;
var demoIframe;
var setting = {
view: {
dblClickExpand: false,
showLine: true,
selectedMulti: false
},
data: {
simpleData: {
enable:true,
idKey: "id",
pIdKey: "pId",
rootPId: ""
}
},
callback: {
beforeClick: function(treeId, treeNode) {
var zTree = $.fn.zTree.getZTreeObj("tree");
// if (treeNode.isParent) {
// zTree.expandNode(treeNode);
// return false;
// } else {
demoIframe.attr("src",treeNode.file);
//return true;
//}
}
}
};
var zNodes =<%=getJson() %>;
$(document).ready(function(){
var t = $("#tree");
t = $.fn.zTree.init(t, setting, zNodes);
demoIframe = $("#testIframe");
demoIframe.bind("load", loadReady);
var zTree = $.fn.zTree.getZTreeObj("tree");
zTree.selectNode(zTree.getNodeByParam("id", 101));
});
function loadReady() {
var bodyH = demoIframe.contents().find("body").get(0).scrollHeight,
htmlH = demoIframe.contents().find("html").get(0).scrollHeight,
maxH = Math.max(bodyH, htmlH), minH = Math.min(bodyH, htmlH),
h = demoIframe.height() >= maxH ? minH:maxH ;
if (h < 530) h = 530;
demoIframe.height(h);
}
</script>
</head>
<body>
<form id="form1" runat="server">
<div>
<table style=" width:100%">
<tr>
<td align="left" style=" width:200px">
<ul id="tree" class="ztree"></ul>
</td>
<td align="left">
<iframe id="testIframe" frameborder="0" scrolling="no" height="auto" width="100%" ></iframe></td>
</tr>
</table>
</div>
</form>
</body>
</html>
后台代码:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Text;
public partial class Admin_Ztree : System.Web.UI.Page
{
BLL.Column bcolumn = new BLL.Column();
protected void Page_Load(object sender, EventArgs e)
{
string str = getJson();
}
/// <summary>
/// 拼接json字符
/// </summary>
/// <returns></returns>
DataTable dt1 = new DataTable();
DataTable dt2 = new DataTable();
DataTable dt3 = new DataTable();
public string getJson()
{
string name = "";
string id = "";
StringBuilder seriesData = new StringBuilder();
string UrlList = "List.aspx";
// dt1 = glb.getDS(conncls.getconnstr(), cmdstr);
dt1 = bcolumn.getDataList(" ID!=0 ");
seriesData.Append("[");
#region
if (dt1.Rows.Count > 0)
{
for (int i = 0; i < dt1.Rows.Count; i++)
{
seriesData.Append("{");
id = dt1.Rows[i]["ID"].ToString();
seriesData.Append("ID:" + id);
seriesData.Append(",");
name = dt1.Rows[i]["ColumnName"].ToString();
seriesData.Append("name:'" + name + "'");
seriesData.Append(",");
//如果数据库中有路径可以加上路径,在这统一跳到List页面
seriesData.Append("file:'" + UrlList + "?action=one&&ID=" + name + "'");//一般加参数的方式 可以随便加
seriesData.Append(",");//第一级结束
dt2 = bcolumn.getDataList(" PreColumnID=" + id);
#region
if (dt2.Rows.Count > 0)
{
seriesData.Append("children:[");//第二级开始
for (int j = 0; j < dt2.Rows.Count; j++)
{
seriesData.Append("{");
id = dt2.Rows[j]["ID"].ToString();
seriesData.Append("ID:" + id);
seriesData.Append(",");
name = dt2.Rows[j]["ColumnName"].ToString();
seriesData.Append("name:'" + name + "'");
seriesData.Append(",");
//如果数据库中有路径可以加上路径,在这统一跳到List页面
seriesData.Append("file:'" + UrlList + "?action=two&&ID=" + name + "'");
seriesData.Append(",");
dt3 = bcolumn.getDataList(" PreColumnID="+id);
#region
if (dt3.Rows.Count>0)
{
seriesData.Append("children:[");
for (int k = 0; k < dt3.Rows.Count;k++ )
{
seriesData.Append("{");
id = dt3.Rows[k]["ID"].ToString();
seriesData.Append("ID:" + id);
seriesData.Append(",");
name = dt3.Rows[k]["ColumnName"].ToString();
seriesData.Append("name:'" + name + "'");
seriesData.Append(",");
//如果数据库中有路径可以加上路径,在这统一跳到List页面
seriesData.Append("file:'" + UrlList + "?action=three&&ID=" + name + "'");
seriesData.Append("}");
if(k!=dt3.Rows.Count-1)
{
seriesData.Append(",");
}
}
seriesData.Append("]");
}
#endregion
seriesData.Append("}");
if (j != dt2.Rows.Count - 1)
{
seriesData.Append(",");
}
}
seriesData.Append("]");
}
#endregion
seriesData.Append("}");
if (i != dt1.Rows.Count - 1)
{
seriesData.Append(",");
}
}
}
#endregion
seriesData.Append("]");
return seriesData.ToString();
}
}
List前台页面:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="List.aspx.cs" Inherits="List" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div>
<asp:Literal ID="zgw" runat="server"></asp:Literal>
</div>
</form>
</body>
</html>
List后台页面:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
public partial class List : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if(Request.QueryString["action"]!=null)
{
if(Request.QueryString["action"]=="one")
{
string id=Request.QueryString["ID"].ToString();
zgw.Text=id;
}
if (Request.QueryString["action"] == "two")
{
string id = Request.QueryString["ID"].ToString();
zgw.Text = id;
}
if (Request.QueryString["action"] == "three")
{
string id = Request.QueryString["ID"].ToString();
zgw.Text = id;
}
}
}
}
有源码 http://download.csdn.net/detail/zhao8912/6514489