表 :
productnameid parent_id productname
1 0 电器
2 0 家具
3 1 电视
4 2 桌子 用asp.net 动态显示出树
productnameid parent_id productname
1 0 电器
2 0 家具
3 1 电视
4 2 桌子 用asp.net 动态显示出树
解决方案 »
- 水晶报表无法显示数据??急
- ASP.NET页面中调用VC写的DLL,DLL中的CoInitialize报错问题
- .aspx代码里设置了debug="True",故意出错后,还是看不到“显示完整编译源”的连接!
- 提交后如何打印出已复选的值!!!
- 问个小问题,为什么这样为无效呢?
- 重赏之下必有勇夫--一个100分的问题
- 日期语法错误,应怎样解决 ><
- 急!数据库内容在页面显示乱码!
- 请问,哪里有做ASP.Net Web的打包程序资料?
- 站点放IIS,占用内存大概1G,使用memory profiler监控结果,请大家帮忙看下。
- 是什么限制了Button的事件?
- girdview中的数据是绑定的从数据库中读取的,如何在gridview中加一列checkbox复选框,再加一个删除按钮,点击删除选中的数据?
private void _BindTree()
{
if(this.TreeView1.Nodes.Count>0)
this.TreeView1.Nodes.Clear();
DataTable dt = //这里查询数据
DataRow[] rows = dt.Select("Parent_ID = 0");
for(int i=0;i<rows.Length;i++)
{
TreeNode node = new TreeNode();
node.Text = rows[i]["productname"].ToString()
node.ImageUrl ="../images/house.ico";
node.Value = rows[i]["productnameid"].ToString();
this.TreeView1.Nodes.Add(node);
this.AddChildNodes(ref dt, ref node);
} this.TreeView1.DataBind(); } private void AddChildNodes(ref DataTable dt, ref TreeNode node)
{
DataRow[] rows = dt.Select("Parent_ID="+ node.Value);
for(int i=0;i<rows.Length;i++)
{
TreeNode NewNode = new TreeNode();
NewNode.Text = rows[i]["productname"].ToString()
NewNode.ImageUrl ="../images/house.ico";
NewNode.Value = rows[i]["productnameid"].ToString();
this.AddChildNodes(ref dt,ref NewNode);
node.ChildNodes.Add(NewNode);
}
}
<%@ Page Language="C#" %>
<script runat="server">
protected void TreeView1_TreeNodePopulate(object sender, TreeNodeEventArgs e)
{
TreeNode newNode;
if (e.Node == null)
{
newNode = new TreeNode();
newNode.Value = "0";
newNode.Text = "开始站点";
newNode.PopulateOnDemand = true;
newNode.SelectAction = TreeNodeSelectAction.Expand;
TreeView1.Nodes.Add(newNode); }
else
{
string sql = "select * from Data Where pid=" + e.Node.Value;
System.Data.OleDb.OleDbConnection cn = new System.Data.OleDb.OleDbConnection();
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source="
+ Server.MapPath("~/") + @"\App_Data\tree.mdb;Persist Security Info=True";
cn.Open();
System.Data.OleDb.OleDbCommand cmd = new System.Data.OleDb.OleDbCommand(sql, cn); System.Data.OleDb.OleDbDataReader dr = cmd.ExecuteReader();
while (dr.Read())
{
newNode = new TreeNode();
newNode.Text = dr["Title"].ToString();
newNode.Value = dr["id"].ToString();
newNode.NavigateUrl = dr["href"].ToString();
//设置PopulateOnDemand为true,确保下面的子节点仍然可以动态生成。
newNode.PopulateOnDemand = true;
newNode.SelectAction = TreeNodeSelectAction.Expand;
e.Node.ChildNodes.Add(newNode);
}
dr.Close();
dr.Dispose();
cmd.Dispose();
cn.Close();
cn.Dispose();
cn = null;
}
} protected void Page_Load(object sender, EventArgs e)
{
if (!this.IsPostBack)
{
TreeNode newNode;
newNode = new TreeNode();
newNode.Value = "0";
newNode.Text = "【孟子E章】站点";
newNode.PopulateOnDemand = true;
newNode.SelectAction = TreeNodeSelectAction.Expand;
TreeView1.Nodes.Add(newNode);
}
}
</script><html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
<title>TreeView 服务器控件从数据库加载数据</title>
</head>
<body>
<form id="form1" runat="server">
<asp:TreeView ID="TreeView1" runat="server" ShowLines="true"
OnTreeNodePopulate="TreeView1_TreeNodePopulate">
</asp:TreeView>
</form>
</body>
</html>
VB.NET:
<%@ Page Language="VB" %>
<script runat="server">
Protected Sub TreeView1_TreeNodePopulate(ByVal sender As Object, ByVal e As TreeNodeEventArgs)
Dim newNode As TreeNode
If e.Node Is Nothing Then
newNode = New TreeNode
newNode.Value = "0"
newNode.Text = "开始站点"
newNode.PopulateOnDemand = True
newNode.SelectAction = TreeNodeSelectAction.Expand
TreeView1.Nodes.Add(newNode)
Else
Dim sql As String = "select * from Data Where pid=" + e.Node.Value
Dim cn As System.Data.OleDb.OleDbConnection = New System.Data.OleDb.OleDbConnection
cn.ConnectionString = "Provider=Microsoft.Jet.OLEDB.4.0;Data Source=" _
+ Server.MapPath("~/") + "\App_Data\tree.mdb;Persist Security Info=True"
cn.Open
Dim cmd As System.Data.OleDb.OleDbCommand = New System.Data.OleDb.OleDbCommand(sql, cn)
Dim dr As System.Data.OleDb.OleDbDataReader = cmd.ExecuteReader
While dr.Read
newNode = New TreeNode
newNode.Text = dr("Title").ToString
newNode.Value = dr("id").ToString
newNode.NavigateUrl = dr("href").ToString
newNode.PopulateOnDemand = True
newNode.SelectAction = TreeNodeSelectAction.Expand
e.Node.ChildNodes.Add(newNode)
End While
dr.Close
dr.Dispose
cmd.Dispose
cn.Close
cn.Dispose
cn = Nothing
End If
End Sub Protected Sub Page_Load(ByVal sender As Object, ByVal e As EventArgs)
If Not Me.IsPostBack Then
Dim newNode As TreeNode
newNode = New TreeNode
newNode.Value = "0"
newNode.Text = "【孟子E章】站点"
newNode.PopulateOnDemand = True
newNode.SelectAction = TreeNodeSelectAction.Expand
TreeView1.Nodes.Add(newNode)
End If
End Sub
</script>
<html xmlns="http://www.w3.org/1999/xhtml">
<head id="Head1" runat="server">
<title>TreeView 服务器控件从数据库加载数据</title>
</head>
<body>
<form id="form1" runat="server">
<asp:TreeView ID="TreeView1" runat="server" ShowLines="true"
OnTreeNodePopulate="TreeView1_TreeNodePopulate">
</asp:TreeView>
</form>
</body>
</html>