在ASP.NET中开发树状结构--免费毕业论文、毕业论文范文、毕业论文格式、毕业论文提纲,毕业论文网,提供计算机应用论文,计算机论文,工学论文毕业论文提纲、毕业论文范文、毕业论文格式等.
喜欢WitkeyCity.Com,请把WitkeyCity.Com告诉你QQ上的5位好友,多谢支持!
网站地图
合作联系
收藏本站

首 页 经济学论文 财政税收 证券金融 管理学论文 会计审计 工商管理 财务管理 公共管理 法学论文 理学论文 医药学论文
政治论文 社会学论文 文学论文 教育类论文 工学论文 计算机论文 艺术类论文 哲学论文 文化论文 英语论文 应用文 论文写作指导
邮电通信

   
 ·推荐免费论文
·2007县委办公室先进性教育活动工
·用科学发展观统领农业和农村经济
·计算机实习报告范文
·调查报告:大学生眼中的电子商务
·当前农村初中生学习心理的调查报
·求职信的格式和写作要点 
·英文简历写作的注意事项 
·毕业论文写作的基本要求
·计算机软件许可证协议书
 ·最近更新论文
·在电子商务中如何正确的使用数据
·大型ORACLE数据库优化设计方案
·在VB6.0数据库程序开发中使用ADO
·浅谈VFP报表打印问题
·通用网页查询函数的设计与应用
·构建校园网页面电子邮件系统
·Delphi中画布应用两则
·利用RCM2200实现以太网与异步串口
·Oracle数据库的优化
 ·推荐链接
   当前位置:首页 > 计算机论文 > 计算机应用 > 论文正文
联系我们 客户反馈

在ASP.NET中开发树状结构

来源:  [ 2007-3-8 22:24:38 ]  作者:佚名  编辑:
收藏到VIVI | 收藏到365KEY | 收藏到YOUNOTE | 收藏到博采| 收藏到天极网摘 | 收藏到和讯网摘

摘要:
在网页中用树状结构显示数据既清晰又简单,用户非常需要。本文从实际应用的角度,介绍了在ASP.NET中使用TreeView控件来创建树状结构的几种具体方法,可以方便地建立静、动态树状结构,较好地解决了树状结构在生成无限层次不定数量节点时非常困难而且容易出错的问题。

关键字:
Treeview控件、命名空间、静态树、动态树

一、引言
在网页开发工具ASP.NET的应用中,用户经常希望用树状控件来显示分类或层次数据,这样既简单又直观,但是ASP.NET本身没有提供此控件。当然程序员可以用ImageButton和Label等组成的用户控件和XML、XSL语言自己进行编写,它们可以显示有限层次少量节点的树状,但要生成无限层次不定数量的节点时就难以实现并且非常容易出错。
作者通过对Microsoft下TreeView控件大量的实际应用,可以非常方便地实现任何类型的树状结构,较好地解决了上述问题。

二、安装 TreeView控件、导入命名空间
    在你的Web程序使用TreeView控件之前,首先必须下载Internet Explorer WebBrower controls到你的开发机器上,然后导入命名空间。可访问以下网址下载:
http://www.asp.net/ControlGallery/default.aspx?Category=38&tabindex=2
下载后,再根据它的帮助文档进行一些必要的设置。
    在成功下载并设置了之后,就可以开始使用TreeView控件。记住:在每个使用它的程序页面的开头都要导入它的命名空间:
  <%@ Import namespace="Microsoft.Web.UI.WebControls" %>
<%@Register TagPrefix="mytree" NameSpace="Microsoft.Web.UI.WebContro-ls" Assembly="Microsoft.Web.UI..WebControls,Version=1.0.2.226,Culture=neu-tral,PublicKeyToken=31bf3856ad364e35" %>

三、三种方式添加节点,创建静态树
    开发树状结构要定义一个TreeView控件,并向其中添加所需的Treenode节点。向TreeView控件中添加节点的方法有三种:
1、      在页面中创建:
所有的WebControls都要放在form中,Treeview当然也不例外:
<body>
   <form runat="server">
     <mytree:treeview id="treeview1" runat="server">
     <mytree:treenode text="first node"/>
    </mytree:treeview>
    </form>
    </body>
    以上的语句创建了具有一个节点first node、名为treeview1的树。

2、在程序代码中创建:
    public void Page_Load(object sender,EventArgs e)
    {
      if(!Page.IsPostBack)
      {
      TreeNode snode=new TreeNode();
      snode.Text="second node";
      treeview1.Nodes.Add(snode);
      }
    }
这样就为上例的treeview1又创建一个节点second node,Add方法是在树的最后添加节点。生成的结构
3、从XML中导入:
在TreeView控件中设定treenodesrc属性的值为numtree.xml:
<mytree:treeview id="treeview1" runat="server" treenodesrc="numtree.xml"/>
    说明当生成树状控件时会自动从numtree.xml中读取树的节点内容,numtree.xml文件如下:
<?XML version="1.0" encoding="utf-8" ?>
<treenodes>
<treenode text="first node"/>
<treenode text="second node"/>
</treenodes>
生成的树状结果同上面的例子相同

四、方便快捷地创建动态树
以上方法产生的树都是静态的,即使是从XML中导入,它的节点数目也是一定的。当我们要将数据库中的数据用树状结构表现出来时,并不知道这个树的层次和节点数,就需要在TreeView控件中动态地添加树节点。例如用树状结构表现一个公司有许多部门,部门下有员工。部门的数据放在表dept中(包含字段deptid和deptname),部门和员工的对应关系放在表deptperson中(包含字段deptid、personid和personname),并且这些字段都是string类型,这两个表放在数据库mydb.mdb中。这里添加节点的方法也有几种,在此介绍的方法是在页面加载时生成部门节点,当点击部门前的扩展图标按钮后再生成部门下的人员子节点。
在页面中写入:
<mytree:treeview id="tr1" runat="serve" onexpand="treeview1_Expand"/>
在<script Language="c#" runat="server"></script>中加入如下代码:
OleDbConnection myconn;
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 * 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=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(deptnode.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.ExecuteReader();
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控件深入的研究,我们也会不断地发现它的更多的有用的方法和功能。

本论文共2页,当前在第1页  1  2  

论文首页】【设为主页】【字体: 加入收藏】【打印本文】【回到顶部
 
上篇文章: PowerBuilder中实现数据窗口列不可编辑的一种方法  下篇文章: ASP网页设计小技巧
网站首页 - 友情链接 - 网站地图 - 加入收藏

声明:中国论文网毕业论文资料来源于网络,如有侵犯您的权益,请立即告知,我们将删除!
联系方式: E-mail:Laozhanga@QQ.COM QQ:75931341
喜欢WitkeyCity.Com,请把WitkeyCity.Com告诉你QQ上的5位好友,多谢支持!
冀ICP备07000828号