求 treeview 源代码(VB.net)

loveno1 2003-09-15 02:23:01
我看过以前的贴,可是那些都不能让我能很明白,有哪位自己写过的(VB.net)请把详细的代码贴出。

我想看到的是,树型的菜单的内容是从数据库(SQL Server)里读出来的,最少有2级,万分感谢!!!

或者用xml+js的代码,也可以~
...全文
70 10 打赏 收藏 转发到动态 举报
写回复
用AI写文章
10 条回复
切换为时间正序
请发表友善的回复…
发表回复
jpyc 2003-10-30
  • 打赏
  • 举报
回复
http://218.56.11.178:8009/

自己搜搜,开放源码的论坛!里边有TREEVIEW的用法。

http://expert.csdn.net/Expert/topic/2248/2248544.xml?temp=.6887018

c#的
ahui_net 2003-09-15
  • 打赏
  • 举报
回复
http://aspx.cc
yuanylong 2003-09-15
  • 打赏
  • 举报
回复
http://expert.csdn.net/Expert/topic/2093/2093882.xml?temp=.4153406
loveno1 2003-09-15
  • 打赏
  • 举报
回复
guoyan19811021(吉祥)

试了你的代码,怎么不能显示啊,空白一片
guoyan19811021 2003-09-15
  • 打赏
  • 举报
回复
DataBase:
NodeNumber 自动编号
NodeName 文本
TreeNode 文本
guoyan19811021 2003-09-15
  • 打赏
  • 举报
回复
Sub CreateChildTree(ByVal ParentNode As TreeNode, ByVal NodeId As String, ByVal ParentNodeText As String)
Dim ds As DataSet = New DataSet()
Dim conn As OleDbConnection
conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & server.MapPath("database\mytree.mdb"))
Dim mycommand As OleDbDataAdapter
mycommand = New OleDbDataAdapter("select * from tree where TreeNode='" + NodeId + "' order by NodeNumber desc", conn)
conn.Open()
mycommand.Fill(ds)
Dim i As Integer

For i = 0 To ds.Tables(0).Rows.Count - 1

Dim myTreeNode As New TreeNode()
myTreeNode.Text = ds.Tables(0).Rows(i).Item(1)
myTreeNode.ImageUrl = "images/folderclosed.gif"
myTreeNode.ExpandedImageUrl = "images/folderopen.gif"
myTreeNode.Target = "mainFrame"
ParentNode.Nodes.Add(myTreeNode)
CreateChildTree(myTreeNode, ds.Tables(0).Rows(i).Item(0), ds.Tables(0).Rows(i).Item(1))
CreateChildTree(myTreeNode, ds.Tables(0).Rows(i).Item(0), ds.Tables(0).Rows(i).Item(1))
Next
End Sub
guoyan19811021 2003-09-15
  • 打赏
  • 举报
回复
Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
'在此处放置初始化页的用户代码

Dim NodeText As String = "-1"
Dim ds As DataSet = New DataSet()
Dim conn As OleDbConnection
conn = New OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source=" & Server.MapPath("dATABASE\MYTREE.mdb"))
Dim mycommand As OleDbDataAdapter
mycommand = New OleDbDataAdapter("select * from tree where TreeNode='" + NodeText + "' order by NodeNumber asc", conn)
conn.Open()
mycommand.Fill(ds)
Dim i As Integer
'===根结点数
For i = 0 To ds.Tables(0).Rows.Count - 1
Dim myTreeNode As New TreeNode()
myTreeNode.Text = ds.Tables(0).Rows(i).Item(1)
myTreeNode.ImageUrl = "images/folderclosed1.gif"
myTreeNode.ExpandedImageUrl = "images/folderopen1.gif"
TreeView1.Nodes.Add(myTreeNode)
CreateChildTree(myTreeNode, ds.Tables(0).Rows(i).Item(0), ds.Tables(0).Rows(i).Item(1))
Next
End Sub
seesea125 2003-09-15
  • 打赏
  • 举报
回复
下载地址:
http://msdn.microsoft.com/downloads/samples/internet/ASP_DOT_NET_ServerControls/WebControls/default.asp

安装方法:(也可参照Readme.txt)
1.bulid.将bulid.bat的路径指向csc.exe所在路径,生成Microsoft.Web.UI.WebControls.dll。
2.在wwwroot下创建空目录webctrl_client\1_0。
3.将build\Runtime下的文件拷至webctrl_client\1_0下。
4.选择工具箱的自定义工具箱,添加Microsoft.Web.UI.WebControls.dll。

=======================
树形图用于显示按照树形结构进行组织的数据,其用途比较广泛,如计算机中的文件系统(Windows中的资源管理器)、企业或公司的组成结构等。我们知道在Windows下VB、PB、Delphi等工具提供了一个功能很强的树型控件TreeView,利用Treeview控件可以方便地开发树形图。然而在网页上实现树形图就不那么容易了,现在在ASP.NET中利用微软提供的Internet Explorer WebControls它使得网页上的树形图开发与在Windows下一样的方便,一样的功能强大,甚至更灵活。


  本文介绍用Internet Explorer WebControls开发树形图的方法,由于树形图结构较复杂,使用起来常不知如何下手。笔者结合最近刚为公司用ASP.NET编写的应用程序管理器这一具体实例,详细阐述在ASP.NET下如何将Internet Explorer WebControls的使用与数据库联系起来,实现数据分任意多层显示,方便地进行增加、修改、删除、移动操作。笔者希望通过对该实例的阐述,达到抛砖引玉的效果,与各位同仁相互交流,共同进步。


  Internet Explorer WebControls不在VS.NET的标准Server Control中,要到微软的站点上下载,下载地址是:http://msdn.microsoft.com/downloads/samples/internet/default.asp?url=/Downloads/samples/Internet/ASP_DOT_NET_ServerControls/WebControls/default.asp 下载安装后第一次使用时,要右击工具箱Customize Toolbox…→.NET Framework Components中找到Micosoft.Web.UI.WebControls.Treeview后选中,这样Treeview控件就出现在工具箱中了。


  一、树的建立


  具体方法是:创建一个数据库,设计树图信息表TREE_INFO,包含NODEID、PARENTID、NODENAME、ADDERSS、ICON字段,其它字段根据实际业务而定,节点名称NODENAME将在树型控件的节点上显示,NODEID字段保存节点的唯一标识号,PARENTID表示当前节点的父节点号,标识号组成了一个“链表”,记录了树上节点的结构。设计一个Web窗体其上放置TreeView控件。



Private Sub CreateDataSet()’建立数据集
Dim myConn As New SqlConnection()
Dim myCmd As New SqlCommand("select NODEID,NODENAME,PARENTID,ADDRESS,ICON from Tree_info", myConn)
Dim myDataAdapter As New SqlDataAdapter()
myConn.ConnectionString = Application("connectstring")
myCmd.CommandText = ""
myCmd.Connection = myConn
myDataAdapter.SelectCommand = myCmd
myDataAdapter.Fill(ds, "tree")
End Sub


  建树的基本思路是:从根节点开始递归调用显示子树


Private Sub Page_Load(ByVal sender As System.Object, ByVal e As System.EventArgs) Handles MyBase.Load
CreateDataSet()
intiTree(TreeView1.Nodes, 0)
End Sub
Private Sub intiTree(ByRef Nds As TreeNodeCollection, ByVal parentId As Integer)
Dim dv As New DataView()
Dim drv As DataRowView
Dim tmpNd As TreeNode
Dim intId As Integer
dv.Table = ds.Tables("tree")
dv.RowFilter = "PARENTID=’" & parentId & "’"
For Each drv In dv
tmpNd = New TreeNode()
intId = drv("NODE_ID")
tmpNd.ID = strId
tmpNd.Text = drv("NODE_NAME ")
tmpNd.ImageUrl = drv("ICON").ToString
Nds.Add(tmpNd)
intiTree(Nds(Nds.Count - 1).Nodes, intId)
Next
End Sub
树猫 2003-09-15
  • 打赏
  • 举报
回复
protected Microsoft.Web.UI.WebControls.TreeView trvAptm;

/// <summary>
/// 初始化方法
/// </summary>
/// <param name="sender"></param>
/// <param name="e"></param>
private void Page_Load(object sender, System.EventArgs e)
{ /*树的单击展开*/
trvAptm.Attributes.Add("ondblclick","treeDblclick(this);");
//从Session对象中取出登录公司的ID号
int iCorpID = (Int32)Session["CorpID"];

//做出房源树
string strSql = "Select ID,Name From Corp "
+ "Where DoFlag=1 And ID="+iCorpID.ToString();

DataTable dtCorp = DataCenter.GetDataTable(strSql);

for(int i=0;i<dtCorp.Rows.Count;i++)
{
/*将公司加在树的第一层*/
TreeNode trnCorp = new TreeNode();
trnCorp.Text = dtCorp.Rows[i]["Name"].ToString();
trnCorp.Target = "frmRgt";
trnCorp.ImageUrl = "../../Img/key.gif";
trnCorp.NavigateUrl = "./Comu/Default.aspx?id="+dtCorp.Rows[i]["ID"].ToString();
trnCorp.Expanded = true;
trvAptm.Nodes.Add(trnCorp);

/*将小区加在所属公司下*/

string strComu = "Select ID,Num,Name From Community Where DoFlag=1 And CorpID="+dtCorp.Rows[i]["ID"].ToString()+" Order by ID DESC";
DataTable dtComu = DataCenter.GetDataTable(strComu);

for(int j=0;j<dtComu.Rows.Count;j++)
{
TreeNode trnComu = new TreeNode();
trnComu.Text = dtComu.Rows[j]["Name"].ToString();
trnComu.Target = "frmRgt";
trnComu.ImageUrl = "../../Img/note.gif";
trnComu.NavigateUrl = "./Build/Default.aspx?id="+dtComu.Rows[j]["ID"].ToString();
trnCorp.Nodes.Add(trnComu);

/*将楼房加在所属小区下*/
string strBuild = "Select ID,Num,Name From Building Where DoFlag=1 And ComuID="+dtComu.Rows[j]["ID"].ToString()+" Order by Num Asc";
DataTable dtBuild = DataCenter.GetDataTable(strBuild);

for(int k=0;k<dtBuild.Rows.Count;k++)
{
TreeNode trnBuild = new TreeNode();
trnBuild.Text = dtBuild.Rows[k]["Name"].ToString();
trnBuild.Target = "frmRgt";
trnBuild.ImageUrl = "../../Img/housey.gif";
trnBuild.NavigateUrl = "./Apartment/Default.aspx?id="+dtBuild.Rows[k]["ID"].ToString();

trnComu.Nodes.Add(trnBuild);
}
}
}
}
loveno1 2003-09-15
  • 打赏
  • 举报
回复
自己先 up

各位高手帮帮忙啊

62,046

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧