



下载本文档
版权说明:本文档由用户提供并上传,收益归属内容提供方,若内容存在侵权,请进行举报或认领
文档简介
1、在ASP.NET中开发树状结构 摘要:在网页中用树状结构显示数据既清晰又简单,用户非常需要。本文从实际应用的角度,介绍了在ASP.NET中使用TreeView控件来创建树状结构的几种具体方法,可以方便地建立静、动态树状结构,较好地解决了树状结构在生成无限层次不定数量节点时非常困难而且容易出错的问题。关键字:Treeview控件、命名空间、静态树、动态树一、引言在网页开发工具ASP.NET的应用中,用户经常希望用树状控件来显示分类或层次数据,这样既简单又直观,但是ASP.NET本身没有提供此控件。当然程序员可以用ImageButton和Label等
2、组成的用户控件和XML、XSL语言自己进行编写,它们可以显示有限层次少量节点的树状,但要生成无限层次不定数量的节点时就难以实现并且非常容易出错。作者通过对Microsoft下TreeView控件大量的实际应用,可以非常方便地实现任何类型的树状结构,较好地解决了上述问题。二、安装 TreeView控件、导入命名空间 在你的Web程序使用TreeView控件之前,首先必须下载Internet Explorer WebBrower controls到你的开发机器上,然后导入命名空间。可访问以下网址下载:下载后,再根据它的帮助文档进行一些必要的设置。
3、160; 在成功下载并设置了之后,就可以开始使用TreeView控件。记住:在每个使用它的程序页面的开头都要导入它的命名空间: <% Import namespace="Microsoft.Web.UI.WebControls" %><%Register TagPrefix="mytree" NameSpace="Microsoft.Web.UI.WebContro-ls" Assembly="Microsoft.Web.UI.WebControls,Version=2
4、6,Culture=neu-tral,PublicKeyToken=31bf3856ad364e35" %>三、三种方式添加节点,创建静态树 开发树状结构要定义一个TreeView控件,并向其中添加所需的Treenode节点。向TreeView控件中添加节点的方法有三种:1、 在页面中创建:所有的WebControls都要放在form中,Treeview当然也不例外:<body> <form runat="server"&
5、gt; <mytree:treeview id="treeview1" runat="server"> <mytree:treenode text="first node"/> </mytree:treeview> </form> </body>
6、60; 以上的语句创建了具有一个节点first node、名为treeview1的树。 2、在程序代码中创建: public void Page_Load(object sender,EventArgs e) if(!Page.IsPostBack) TreeNode snode=new TreeNode();
7、0; snode.Text="second node" treeview1.Nodes.Add(snode); 这样就为上例的treeview1又创建一个节点second node,Add方法是在树的最后添加节点。生成的结构3、从XML中导入:在TreeView控件中设定treenodesrc属性的值为numtree.xml:<mytree:treeview id="treevi
8、ew1" runat="server" treenodesrc="numtree.xml"/> 说明当生成树状控件时会自动从numtree.xml中读取树的节点内容,numtree.xml文件如下:<?XML version="1.0" encoding="utf-8" ?><treenodes><treenode text="first node"/><treenode text="seco
9、nd node"/></treenodes>生成的树状结果同上面的例子相同四、方便快捷地创建动态树以上方法产生的树都是静态的,即使是从XML中导入,它的节点数目也是一定的。当我们要将数据库中的数据用树状结构表现出来时,并不知道这个树的层次和节点数,就需要在TreeView控件中动态地添加树节点。例如用树状结构表现一个公司有许多部门,部门下有员工。部门的数据放在表dept中(包含字段deptid和deptname),部门和员工的对应关系放在表deptperson中(包含字段deptid、personid和personname),并且这些字段都是string类型,这两个
10、表放在数据库mydb.mdb中。这里添加节点的方法也有几种,在此介绍的方法是在页面加载时生成部门节点,当点击部门前的扩展图标按钮后再生成部门下的人员子节点。在页面中写入:<mytree:treeview id="tr1" runat="serve" onexpand="treeview1_Expand"/>在<script Language="c#" runat="server"></script>中加入如下代码:OleDbConnection myconn;
11、public void Page_Load(Object sender,EventArgs e)/ 在页面加载时生成部门节点string strmyconn="Provider=Microsoft.Jet.OLEDB.4.0;Data Source="+Serve-r.MapPath(".")+"./DataBase/mydb.mdb"myconn=new OleDbConnection(strmyconn);myconn.Open();if(!Page.IsPostBack)string strdept="select *
12、 from dept"OleDbCommand mycomm=new OleDbCommand(strdept,myconn)OleDbDataReader mydr=mycomm.ExecuteReader();/用DataReader读取部门表中的数据while(mydr.Read()TreeNode tmpnode=new TreeNode();tmpnode.Text=mydr"deptname".ToString();tmpnode.NodeData=mydr"deptid".ToString();tmpnode.Expandable
13、=ExpandableValue.CheckOnce;treeview1.Nodes.Add(tmpnode);mydr.Close();点击扩展图标按钮触发的事件treeview1_Expand的代码是:public void treeview1_Expand(object sender,Microsoft.Web.UI.WebControls.Tr-eeViewClickEventArgs e)TreeNode deptnode=(Microsoft.Web.UI.WebControls.TreeView)sender).Nodes(int.Par-se(e.Node);if(deptno
14、de.Nodes.Count=0)string strperson="select deptperson.personname from deptperson,dept whe-re dept.deptid=deptperson.deptid and dept.deptid='"+deptnode.NodeData.T-oString()+"'"OleDbCommand mycomm1=new OleDbCommand(strperson,myconn);OleDbDataReader mydr1=mycomm1.ExecuteReade
15、r();while(mydr1.Read()TreeNode personnode=new TreeNode();personnode.Text=mydr1"personname".ToString();deptnode.Nodes.Add(personnode);mydr1.Close(); 使用同样的方法和原理,我们可以创建比这更为复杂的树结构。TreeView控件还有许多其他的属性和事件,象ChildType,SelectedStyle,imageurl和onselectedindexchang等,利用这些属性不但可以美化树状结构的外观,而且还可以更好的满足你的使用要求。五、结论:在上面的使用中,我们可以看出TreeView控件在生成树状结构方面具有强大功能,与其他编写自定义用户控件和利用XML的方法相比较,它提供的用可扩展的树状结构来显示层次数据方法更加方便、实用和有效,而且出错率非常低。随着对TreeView控件深入的研究,我们也会不断地发现它的更多的有用的方法和功能。参考文献1运用XMLXSL进行高级用户接口设计(1)目录树设计 2002.22James Avery. Developing w
温馨提示
- 1. 本站所有资源如无特殊说明,都需要本地电脑安装OFFICE2007和PDF阅读器。图纸软件为CAD,CAXA,PROE,UG,SolidWorks等.压缩文件请下载最新的WinRAR软件解压。
- 2. 本站的文档不包含任何第三方提供的附件图纸等,如果需要附件,请联系上传者。文件的所有权益归上传用户所有。
- 3. 本站RAR压缩包中若带图纸,网页内容里面会有图纸预览,若没有图纸预览就没有图纸。
- 4. 未经权益所有人同意不得将文件中的内容挪作商业或盈利用途。
- 5. 人人文库网仅提供信息存储空间,仅对用户上传内容的表现方式做保护处理,对用户上传分享的文档内容本身不做任何修改或编辑,并不能对任何下载内容负责。
- 6. 下载文件中如有侵权或不适当内容,请与我们联系,我们立即纠正。
- 7. 本站不保证下载资源的准确性、安全性和完整性, 同时也不承担用户因使用这些下载资源对自己和他人造成任何形式的伤害或损失。
最新文档
- 2025年牛顿环考试题及答案
- 2025年人力资源部笔试题及答案
- 2025年厨房4d管理试题及答案
- 2025年巷修工高级鉴定试题及答案
- 2025年中班奥数考试题目及答案
- 2025年mri上岗证考试试题及答案
- 2025年金融理财笔试题及答案解析
- 2025年热带气旋考试题及答案
- 2025年热力水处理试题及答案
- 2026版高考化学一轮总复习真题演练第四章非金属及其化合物第16讲氯气的实验室制法卤族元素
- 2024年中级注册安全工程师《安全生产法律法规》真题及答案
- “赤峰小米”谷子品种要求(DB15-T 1734-2019)
- 派出所签订治安调解协议书范文
- 人文视野中的生态学学习通超星期末考试答案章节答案2024年
- 牧场物语-矿石镇的伙伴们-完全攻略
- ISO 22003-1:2022《食品安全-第 1 部分:食品安全管理体系 审核与认证机构要求》中文版(机翻)
- GB/T 17374-2024食用植物油销售包装
- 玻璃钢储罐吊装方案
- 医院培训课件:《麻醉药品、精神药品管理培训》
- 河南省南阳市卧龙区南阳市第一完全学校、南阳市第九完全学校 2024-2025学年九年级上学期9月联考数学试题(无答案)
- DB12-T 1153-2022 城市轨道交通运营设备设施大修和更新改造技术规范
评论
0/150
提交评论