使用“TreeView”控件绑定数据 Asp.net 2.0






4.33/5 (31投票s)
2005年7月15日
5分钟阅读

382932

2
本文介绍 Asp.net 2.0 TreeView 控件与数据库的集成
作者: Danish Hameed
日期: 2005年7月15日
电子邮件: danish.hameed@hotmail.com
职位: 软件工程师
编程语言:Visual Studio 2005 Beta 2, C# (C-Sharp)
作者简介
Danish Hameed 拥有计算机科学学士学位。他参加过编程和软件竞赛并取得了显著成绩。目前在电子学习行业担任软件工程师。
使用“TreeView”控件绑定数据 Asp.net 2.0
真正的事情始于我决定加快速度并开始使用 Microsoft Visual Studio 2005 asp.net 2.0 而不是 VS 的早期版本。在众多新工具中,我在 asp.net 2.0 中发现真正引人入胜的是 TreeView 控件,原因是:我一直在用 JavaScript 创建 TreeViews,并且在将它们与服务器请求/响应集成时遇到了非常困难的时期。
TreeView 控件简介
树视图控件使用线条连接层次结构中的相关项,显示分层列表。每个项都包含一个标签和一个可选的位图。Windows 资源管理器使用树视图控件来显示目录。它显示一个树形结构或菜单,用户可以遍历该结构或菜单以访问网站中的不同页面。包含子节点的节点可以通过单击进行展开或折叠。
您可以使用 ASP.NET 网站导航功能为用户提供一致的网站导航方式。一个简单的解决方案是包含允许用户跳转到其他页面的超链接,以列表或导航菜单的形式呈现这些超链接。但是,随着您的网站的增长,以及您在网站中移动页面,管理所有链接很快变得困难。
为了为您的网站创建一致、易于管理的导航解决方案,您可以使用 ASP.NET 网站导航 TreeView 控件。
图:1.0
注意:您可以通过以下方式手动填充此控件: |
现在让我们开始工作!
现在我们对 TreeView 控件有了非常清晰的理解,我们将迅速着手将此控件集成到我们的网站中。
步骤 1
创建两个数据库表 ParentTable 和 ChildTable,每个表有两列。
ParentTable à [ParentName, ParentId (作为主键)]
ChildTable à [ChildName, ParentId (作为外键)]
注意:您可以使用任何数据库,在我们的示例中,我们将使用 Microsoft SQL Server。
图 2.0
第二步
现在我们已经创建了表格,打开 Microsoft Visual Studio 2005 并创建一个 Asp.net 2.0 WebForm。
注意:您可以通过点击 文件 菜单,然后点击 新建网站 来完成。 |
步骤 3
在程序开头与其他 using 关键字一起添加以下代码行 (LOC)。
步骤 4
在您的 WebForm 上放置一个 TreeView 控件。
注意:请勿更改其名称,为简化起见,我们将使用默认名称 TreeView1。 |
现在双击您的页面,指向 Page_Load 事件并写入 fill_Tree();
protected void Page_Load(object sender, EventArgs e) |
不用担心,我们将在下一步使用此函数。
步骤 5
现在真正的事情开始了。在这一步中,我们将使用我们的两个表 ParentTable 和 ChildTable 来填充我们的 TreeView1 控件。
创建一个函数 fill_Tree()
void fill_Tree() { /* SqlConnection SqlCon = new SqlConnection("server=D_hameed;uid=sa;pwd=airforce;database=test"); SqlCon.Open(); /* SqlCommand SqlCmd = new SqlCommand("Select * from ParentTable",SqlCon); /* SqlDataReader Sdr = SqlCmd.ExecuteReader(); /* SqlCmd.Dispose (); /* string[,] ParentNode = new string[100, 2]; /* int count = 0; /* * 如果您将此代码粘贴到您的应用程序中,请纠正代码格式。 while (Sdr.Read()) } /* Sdr.Close(); /* for (int loop = 0; loop < count; loop++) { /* TreeNode root = new TreeNode(); /* root.NavigateUrl = "mypage.aspx"; /* * 如果您将此代码粘贴到您的应用程序中,请纠正代码格式。 */ SqlCommand Module_SqlCmd = new SqlCommand("Select * from ChildTable where ParentId =" + ParentNode[loop, 0], SqlCon); SqlDataReader Module_Sdr = Module_SqlCmd.ExecuteReader(); while (Module_Sdr.Read()) // 将子模块添加到根节点 TreeNode child = new TreeNode(); child.Text = Module_Sdr.GetValue(Module_Sdr.GetOrdinal("ChildName")).ToString(); child.Target = "_blank"; child.NavigateUrl = "your_page_Url.aspx"; root.ChildNodes.Add(child); }
} /* } |