TreeView(递归)(转)
代码:
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div style="text-align:center;">
<div style="margin:5px; float:left;"><asp:TreeView runat="server" ID="Tree1"></asp:TreeView></div>
<div style="margin-left:12px;"><asp:GridView runat="server" ID="GridView1"></asp:GridView></div>
</div>
</form>
</body>
</html>
<head runat="server">
<title>无标题页</title>
</head>
<body>
<form id="form1" runat="server">
<div style="text-align:center;">
<div style="margin:5px; float:left;"><asp:TreeView runat="server" ID="Tree1"></asp:TreeView></div>
<div style="margin-left:12px;"><asp:GridView runat="server" ID="GridView1"></asp:GridView></div>
</div>
</form>
</body>
</html>
public partial class InfoSort : System.Web.UI.Page
{
DataSet ds = null;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindData();
loadtree();
}
}
private void loadtree()
{
Tree1.Nodes.Clear();
ds = GetDataSet("SELECT * FROM sort");
InitTree(Tree1.Nodes, 0);
}
private void InitTree(TreeNodeCollection Nds,int parentid)
{
DataView dv = new DataView();
TreeNode tmpNd = null;
dv.Table = ds.Tables[0];
dv.RowFilter = String.Format("parentid={0}", parentid);
foreach (DataRowView drv in dv)
{
tmpNd = new TreeNode();
tmpNd.Text = (string)drv["sortname"];//节点名称
tmpNd.NavigateUrl = String.Format("?id={0}", drv["id"]);//节点URL
//tmpNd.ImageUrl = ""; //节点图片
if (parentid == 0)
tmpNd.Expanded = true;
else
tmpNd.Expanded = false;
Nds.Add(tmpNd);
InitTree(Nds[Nds.Count - 1].ChildNodes, (int)drv["id"]);
}
}
private void BindData()
{
GridView1.DataSource = GetDataSet("select * from sort");
GridView1.DataBind();
}
#region Dal
private OleDbConnection GetConn
{
get
{
string path = Server.MapPath("App_Data/Database2.mdb");
string _connStr = String.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}", path);
return new OleDbConnection(_connStr);
}
}
private DataSet GetDataSet(string sql)
{
OleDbConnection _conn = null;
OleDbDataAdapter odda = null;
DataSet ds = null;
try
{
ds = new DataSet();
_conn = GetConn;
_conn.Open();
odda = new OleDbDataAdapter(sql, GetConn);
odda.Fill(ds);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
if (odda != null)
odda.Dispose();
if (_conn != null)
{
_conn.Close();
_conn.Dispose();
}
}
return ds;
}
#endregion
}
{
DataSet ds = null;
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindData();
loadtree();
}
}
private void loadtree()
{
Tree1.Nodes.Clear();
ds = GetDataSet("SELECT * FROM sort");
InitTree(Tree1.Nodes, 0);
}
private void InitTree(TreeNodeCollection Nds,int parentid)
{
DataView dv = new DataView();
TreeNode tmpNd = null;
dv.Table = ds.Tables[0];
dv.RowFilter = String.Format("parentid={0}", parentid);
foreach (DataRowView drv in dv)
{
tmpNd = new TreeNode();
tmpNd.Text = (string)drv["sortname"];//节点名称
tmpNd.NavigateUrl = String.Format("?id={0}", drv["id"]);//节点URL
//tmpNd.ImageUrl = ""; //节点图片
if (parentid == 0)
tmpNd.Expanded = true;
else
tmpNd.Expanded = false;
Nds.Add(tmpNd);
InitTree(Nds[Nds.Count - 1].ChildNodes, (int)drv["id"]);
}
}
private void BindData()
{
GridView1.DataSource = GetDataSet("select * from sort");
GridView1.DataBind();
}
#region Dal
private OleDbConnection GetConn
{
get
{
string path = Server.MapPath("App_Data/Database2.mdb");
string _connStr = String.Format("Provider=Microsoft.Jet.OLEDB.4.0; Data Source={0}", path);
return new OleDbConnection(_connStr);
}
}
private DataSet GetDataSet(string sql)
{
OleDbConnection _conn = null;
OleDbDataAdapter odda = null;
DataSet ds = null;
try
{
ds = new DataSet();
_conn = GetConn;
_conn.Open();
odda = new OleDbDataAdapter(sql, GetConn);
odda.Fill(ds);
}
catch (Exception ex)
{
throw new Exception(ex.Message);
}
finally
{
if (odda != null)
odda.Dispose();
if (_conn != null)
{
_conn.Close();
_conn.Dispose();
}
}
return ds;
}
#endregion
}