先创建一个数据集Private Sub intiTree(ByRef Nds As TreeNodeCollection, ByVal parentId As Integer, ByVal ds As DataSet)
Dim dv As New DataView()
Dim drv As DataRowView
Dim tmpNd As TreeNode
Dim intId As Integer dv.Table = ds.Tables(0) dv.RowFilter = "ParentID='" & parentId & "'" For Each drv In dv
tmpNd = New TreeNode() intId = CInt(drv(0))
tmpNd.ID = intId.ToString
tmpNd.Text = drv(2).ToString Nds.Add(tmpNd) intiTree(Nds(Nds.Count - 1).Nodes, intId, ds)
Next
End Sub
Dim dv As New DataView()
Dim drv As DataRowView
Dim tmpNd As TreeNode
Dim intId As Integer dv.Table = ds.Tables(0) dv.RowFilter = "ParentID='" & parentId & "'" For Each drv In dv
tmpNd = New TreeNode() intId = CInt(drv(0))
tmpNd.ID = intId.ToString
tmpNd.Text = drv(2).ToString Nds.Add(tmpNd) intiTree(Nds(Nds.Count - 1).Nodes, intId, ds)
Next
End Sub
解决方案 »
- dropdownlist联动问题
- 如何固定GridView大小?
- 权限问题,请高手帮忙
- *****请问如何提取以下字段的问题*****
- 不信高手都死绝了:最近active 控件出现问题,是补丁影响还是动态链接库版本冲突
- 寻求技术合作伙伴(.NET)
- 用户控件事件执行问题!!!强顶!!!
- 请问重新编辑项目时总是有几个文件提示“无法从...resx文件中读取资源信息”错误,更改后的页面信息无法显示。为什么?
- ASP.NET的怪现象
- 两个以逗号分隔的字符串进行对比,取出其中不同的字符串,效率最高的是用什么方法?或者有没有类似正则表达式可以用
- 哪位高手帮我解释两个个控件,我有些看不明白
- DataGrid中有10列,但为何在DataBound事件中用e.Item.Cells.Count只取得6??
CREATE TABLE [dbo].[S_Menu] (
[NodeId] [char] (6) COLLATE Chinese_PRC_CI_AS NULL ,
[ParentId] [char] (6) COLLATE Chinese_PRC_CI_AS NULL ,
[NodeName] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Address] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[Icon] [nvarchar] (50) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
GO数据库如下:
NodeId ParentId NodeName Address Icon
100000 0 公共查询部 icon_document.gif
100001 100000 人民币日报查询 public/a1.aspx icon_settings.gif
100002 100000 外币日报查询 public/a2.aspx icon_settings.gif
100003 0 分行科技部 icon_document.gif
100004 100003 人民币日报查询 tech/a1.aspx icon_settings.gif
100005 100003 外币日报查询 tech/a2.aspx icon_settings.gif
100006 0 福田支行 icon_document.gif
100007 100006 月存款进度表 a1.aspx icon_settings.gif
100008 100006 月存款走势图 a2.aspx icon_settings.gif
100009 0 罗湖支行 icon_document.gif
100010 100009 月存款进度表 a1.aspx icon_settings.gif
100011 100009 月存款走势图 a2.aspx icon_settings.gif
menu_left.aspx文件如下:
<%@ Register TagPrefix="iewc" Namespace="Microsoft.Web.UI.WebControls" Assembly="Microsoft.Web.UI.WebControls, Version=1.0.2.226, Culture=neutral, PublicKeyToken=31bf3856ad364e35" %>
<%@ Page language="c#" Codebehind="menu_Left.aspx.cs" AutoEventWireup="false" Inherits="hzquery.menu.menu_Left" %>
<HTML>
<HEAD>
<title>menu_Left</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio 7.0">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
</HEAD>
<body MS_POSITIONING="GridLayout">
<form id="menu_Left" method="post" runat="server">
<iewc:TreeView id="tvMenu" runat="server"></iewc:TreeView>
</form>
</body>
</HTML>CodeBehind代码如下:
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using Microsoft.Web.UI.WebControls;
using System.Data.SqlClient;namespace hzquery.menu
{
/// <summary>
/// menu_Left 的摘要说明。
/// </summary>
public class menu_Left : System.Web.UI.Page
{
protected Microsoft.Web.UI.WebControls.TreeView tvMenu;
SqlConnection Conn;
SqlDataAdapter myCmd;
DataSet ds;
string cmdSelect; private void Page_Load(object sender, System.EventArgs e)
{
Conn=new SqlConnection(Application["ConnString"].ToString());
CreateDataSet();
InitTree(tvMenu.Nodes,"0");
}
//建立数据集
private DataSet CreateDataSet()
{
cmdSelect="select * from S_Menu";
myCmd=new SqlDataAdapter(cmdSelect,Conn);
ds=new DataSet();
myCmd.Fill(ds,"tree");
return ds;
}
//建树的基本思路是:从根节点开始递归调用显示子树
private void InitTree(TreeNodeCollection Nds,string parentId)
{
DataView dv=new DataView();
TreeNode tmpNd;
string intId;
dv.Table=ds.Tables["tree"];
dv.RowFilter="ParentId="" + parentId + """ ;
foreach(DataRowView drv in dv)
{
tmpNd=new TreeNode();
tmpNd.ID=drv["NodeId"].ToString();
tmpNd.Text=drv["NodeName"].ToString();
tmpNd.ImageUrl="../images/"+drv["Icon"].ToString();
tmpNd.NavigateUrl="../"+drv["Address"].ToString();
Nds.Add(tmpNd);
intId=drv["ParentId"].ToString();
InitTree(tmpNd.Nodes,tmpNd.ID);
}
} #region Web Form Designer generated code
override protected void OnInit(EventArgs e)
{
InitializeComponent();
base.OnInit(e);
}
private void InitializeComponent()
{
this.Load += new System.EventHandler(this.Page_Load); }
#endregion
}
}
____________________________________________________
[以上内容摘自中国BS网:http://www.chinabs.net/aspnet/default.asp?infoid=106]