论文部分内容阅读
摘 要:当我们上网浏览一些网站时,经常在网站页面上看到一个类似windows资源管理器的树形结构,这个树形结构让资源的显示一目了然,当超链接某个地址时方便快捷。本文简单介绍了ASP.NET2.0 TreeView Web服务器控件在网络备课系统中的应用。
关键词:TreeView ASP.NET 2.0 C# 备课系统
中图分类号:TP311文献标识码:A
文章编号:1673-8454(2007)09-0070-02
一、引言
现在大多数网页开发工具没有提供直接可用的TreeView控件,在网页中实现目录树大多采用事先根据需要描述的数据结构生成静态目录树的方法。当要描述的数据源发生改变(如某结点被删除、添加或者移动)时就必须重新修改代码,如果数据源的改变是经常性的,将会使系统的管理和维护变得十分繁琐。
而在ASP.NET2.0中利用微软提供的TreeView Web树形控件,能够使得在网页上实现目录树和在窗体程序中一样方便。
二、TreeView Web控件简介
TreeViewWeb 控件是微软发布的Internet Explorer Web 控件之一,也简称为 IE Web 控件。当 TreeView控件在访问者浏览器中显示时,会呈现一棵树,此树与 Windows 资源管理器中的树非常类似。他们之间所不同的是,TreeView 控件可以由任意多个子节点组成。每个子节点都可以关联文本和图像或者与某个地址进行超链接。包含多个子节点的层次结构构成了 TreeView web控件所呈现的树结构。
自微软公司把目录树用于Windows95中的资源管理以来,用TreeView Web控件来显示数据的方式得到了广泛的应用,这种把数据按照树形结构组织显示的方式可以很直观地描述复杂的层次关系。利用TreeView Web控件与SQL SERVER数据库联系起来进行组织,可以清晰地显示后台数据库中的数据节点和数据结构。
三、TreeView Web控件在备课系统中的应用
1.TreeView Web控件的安装
首先到微软网站上下载IE Web控件包,大小为360K。下载并安装完控件后,将创建一个目录,找到这个目录,双击 build.bat 文件后将创建一个子目录 build,编译 src 子目录中的类,并将生成的程序集和支持文件复制到 build 子目录中。运行完 build.bat 文件后,build 子目录将包含程序集文件 Microsoft.Web.UI.WebControls.dll 和子目录 Runtime。要在 ASP.NET Web 应用程序中使用 IE Web 控件,必须将 build\Runtime 子目录中的内容复制到 Web 应用程序的 webctrl_client/1_0 子目录中,并将Microsoft.Web.UI.WebControls.dll 复制到 Web 应用程序的 /bin 子目录中。[2]
本网络备课系统采用Microsoft Visual Studio.NET2003开发 Web 应用程序,将TreeView Web 控件添加到 ASP.NET Web 页很简单。将TreeViewWeb 控件加入到工具箱中,然后把控件从工具箱拖放到页面设计器中即可。
2.利用TreeView Web控件建立树形结构
(1)网络备课系统课程配置树形结构流程图,如图1所示。
(2)树形结构的建立
建树的基本思路是:从根节点开始递归调用显示子树,在这里用C#语言下的代码如下:
privatevoid connection()
{ try //连接字符串
{ string con=ConfigurationSettings.App-Settings["dsn"];
SqlConnection conn=new SqlConnection(con);//连接字符串
conn.Open();
SqlCommand order=new SqlCommand("sp_ inittree",conn);
order.CommandType=CommandType.StoredPro-cedure;//调用存储过程
SqlParameter courseid= order.Parameters.Add("@courseid", SqlDbType.Int,10); //设置存储过程参数
courseid.Value=this.DropDownList1.SelectedItem.Value;
SqlDataAdapter adapter=new SqlDataAdapter();
adapter.SelectCommand=order;
ds=new DataSet(); //建立并填充数据集
adapter.Fill(ds,"db_lecture");
conn.Close();
catch(SqlException e)
{ Console.WriteLine("Exception in Main: " e.Message); //出错处理
}
InitTree(tvMenu.Nodes,"0");
}
private void InitTree(TreeNodeCollection Nds,string parentId)
{DataView dv=new DataView();
TreeNode tmpNd;
string intId;
dv.Table=ds.Tables["db_lecture"];
dv.RowFilter="parent_id=’" parentId "’" ;
foreach(DataRowView drv in dv)
{ tmpNd=new TreeNode();
tmpNd.ID=drv["lecture_id"].ToString();
tmpNd.Text=drv["lecture_title"].To-String();//节点标题
tmpNd.CheckBox=true;//选择框用于选中节点
tmpNd.NavigateUrl="../" drv["lecture_path"].ToString();//节点的URL
Nds.Add(tmpNd);
intId=drv["parent_id"].ToString();
InitTree(tmpNd.Nodes,tmpNd.ID);//递归调用
}
}
(3)添加子节点
下面就添加过程进行分析,先通过getNodeID(nodes)自编函数找出选中节点的ID,再通过数据库访问在数据表中找到该节点的记录,确定该节点的order_id值,同时也要防止没有选中节点就添加,因此同时还要求找出数据表中最大order_id,若没有选中节点就添加则新添加节点order_id=maxorderid 1。之后执行addnode存储过程,此存储过程起到关键作用。把新添加的节点写入数据表,再调用connection()函数(该函数用来连接数据库且重新初始化目录树),立即在目录树可见新添加节点。
(4)修改、删除节点
删除、修改节点:同样先选中要删除或要修改的节点,再按删除节点或修改节点按钮即可。思路是修改数据表中对应的节点信息,再重新初始化目录树。具体实现方法:通过getNodeID(nodes)函数获得选中节点,再执行sp_deletenode存储过程即可删除选中节点,修改节点则执行sp_amend存储过程即可完成数据表中数据的修改,最后调用connection()函数。
(5)上移、下移节点
上移、下移节点:先选中要上移或下移的节点,再按上移节点按钮或下移按钮,具体实现方法:通过getNodeID(nodes)函数获得选中节点ID,再在数据表中找出该记录,同时执行sp_upselect存储过程,在该目录树找出选中节点的上一节点,之后执行sp_uporder存储过程,完成两节点交换位置,从而达到上移的效果。下移原理相同。
四、结束语
利用TreeView Web服务器控件建立树状结构,使得网络备课系统中课程配置易于操作,教师在使用备课系统时,可以直观地看到自己课程知识章节的设置,提高了备课的效率。
参考文献:
[1] http://msdn2.microsoft.com/zh-cn/library/e8z5184w(VS.80).aspx
[2] http://www.microsoft.com/china/msdn/archives/library/dnaspp/html/aspnet-usingtreeviewiewebcontrol.asp
[3] John Kauffman,Brian Matsik(美).ASP.NET数据库入门经典(C#篇)[M].清华大学出版社,2003.3
[4]李应伟,姚素霞,景丽.ASP.NET数据库高级教程(C#篇)[M].清华大学出版社,2004.7
[5]郝刚,袁永刚,齐艳.ASP.NET服务器控件开发技术与实例[M].人民邮电出版社,2005.1
[6]李贵辉,李兰友.基于Web的备课系统的设计与实现[J].教育信息化(学术),2006.3
关键词:TreeView ASP.NET 2.0 C# 备课系统
中图分类号:TP311文献标识码:A
文章编号:1673-8454(2007)09-0070-02
一、引言
现在大多数网页开发工具没有提供直接可用的TreeView控件,在网页中实现目录树大多采用事先根据需要描述的数据结构生成静态目录树的方法。当要描述的数据源发生改变(如某结点被删除、添加或者移动)时就必须重新修改代码,如果数据源的改变是经常性的,将会使系统的管理和维护变得十分繁琐。
而在ASP.NET2.0中利用微软提供的TreeView Web树形控件,能够使得在网页上实现目录树和在窗体程序中一样方便。
二、TreeView Web控件简介

TreeViewWeb 控件是微软发布的Internet Explorer Web 控件之一,也简称为 IE Web 控件。当 TreeView控件在访问者浏览器中显示时,会呈现一棵树,此树与 Windows 资源管理器中的树非常类似。他们之间所不同的是,TreeView 控件可以由任意多个子节点组成。每个子节点都可以关联文本和图像或者与某个地址进行超链接。包含多个子节点的层次结构构成了 TreeView web控件所呈现的树结构。
自微软公司把目录树用于Windows95中的资源管理以来,用TreeView Web控件来显示数据的方式得到了广泛的应用,这种把数据按照树形结构组织显示的方式可以很直观地描述复杂的层次关系。利用TreeView Web控件与SQL SERVER数据库联系起来进行组织,可以清晰地显示后台数据库中的数据节点和数据结构。
三、TreeView Web控件在备课系统中的应用
1.TreeView Web控件的安装
首先到微软网站上下载IE Web控件包,大小为360K。下载并安装完控件后,将创建一个目录,找到这个目录,双击 build.bat 文件后将创建一个子目录 build,编译 src 子目录中的类,并将生成的程序集和支持文件复制到 build 子目录中。运行完 build.bat 文件后,build 子目录将包含程序集文件 Microsoft.Web.UI.WebControls.dll 和子目录 Runtime。要在 ASP.NET Web 应用程序中使用 IE Web 控件,必须将 build\Runtime 子目录中的内容复制到 Web 应用程序的 webctrl_client/1_0 子目录中,并将Microsoft.Web.UI.WebControls.dll 复制到 Web 应用程序的 /bin 子目录中。[2]
本网络备课系统采用Microsoft Visual Studio.NET2003开发 Web 应用程序,将TreeView Web 控件添加到 ASP.NET Web 页很简单。将TreeViewWeb 控件加入到工具箱中,然后把控件从工具箱拖放到页面设计器中即可。
2.利用TreeView Web控件建立树形结构
(1)网络备课系统课程配置树形结构流程图,如图1所示。
(2)树形结构的建立
建树的基本思路是:从根节点开始递归调用显示子树,在这里用C#语言下的代码如下:
privatevoid connection()
{ try //连接字符串
{ string con=ConfigurationSettings.App-Settings["dsn"];
SqlConnection conn=new SqlConnection(con);//连接字符串
conn.Open();
SqlCommand order=new SqlCommand("sp_ inittree",conn);
order.CommandType=CommandType.StoredPro-cedure;//调用存储过程
SqlParameter courseid= order.Parameters.Add("@courseid", SqlDbType.Int,10); //设置存储过程参数
courseid.Value=this.DropDownList1.SelectedItem.Value;
SqlDataAdapter adapter=new SqlDataAdapter();
adapter.SelectCommand=order;
ds=new DataSet(); //建立并填充数据集
adapter.Fill(ds,"db_lecture");
conn.Close();
catch(SqlException e)
{ Console.WriteLine("Exception in Main: " e.Message); //出错处理
}
InitTree(tvMenu.Nodes,"0");
}
private void InitTree(TreeNodeCollection Nds,string parentId)
{DataView dv=new DataView();
TreeNode tmpNd;
string intId;
dv.Table=ds.Tables["db_lecture"];
dv.RowFilter="parent_id=’" parentId "’" ;
foreach(DataRowView drv in dv)
{ tmpNd=new TreeNode();
tmpNd.ID=drv["lecture_id"].ToString();
tmpNd.Text=drv["lecture_title"].To-String();//节点标题
tmpNd.CheckBox=true;//选择框用于选中节点
tmpNd.NavigateUrl="../" drv["lecture_path"].ToString();//节点的URL
Nds.Add(tmpNd);
intId=drv["parent_id"].ToString();
InitTree(tmpNd.Nodes,tmpNd.ID);//递归调用
}
}
(3)添加子节点
下面就添加过程进行分析,先通过getNodeID(nodes)自编函数找出选中节点的ID,再通过数据库访问在数据表中找到该节点的记录,确定该节点的order_id值,同时也要防止没有选中节点就添加,因此同时还要求找出数据表中最大order_id,若没有选中节点就添加则新添加节点order_id=maxorderid 1。之后执行addnode存储过程,此存储过程起到关键作用。把新添加的节点写入数据表,再调用connection()函数(该函数用来连接数据库且重新初始化目录树),立即在目录树可见新添加节点。
(4)修改、删除节点
删除、修改节点:同样先选中要删除或要修改的节点,再按删除节点或修改节点按钮即可。思路是修改数据表中对应的节点信息,再重新初始化目录树。具体实现方法:通过getNodeID(nodes)函数获得选中节点,再执行sp_deletenode存储过程即可删除选中节点,修改节点则执行sp_amend存储过程即可完成数据表中数据的修改,最后调用connection()函数。
(5)上移、下移节点
上移、下移节点:先选中要上移或下移的节点,再按上移节点按钮或下移按钮,具体实现方法:通过getNodeID(nodes)函数获得选中节点ID,再在数据表中找出该记录,同时执行sp_upselect存储过程,在该目录树找出选中节点的上一节点,之后执行sp_uporder存储过程,完成两节点交换位置,从而达到上移的效果。下移原理相同。
四、结束语
利用TreeView Web服务器控件建立树状结构,使得网络备课系统中课程配置易于操作,教师在使用备课系统时,可以直观地看到自己课程知识章节的设置,提高了备课的效率。
参考文献:
[1] http://msdn2.microsoft.com/zh-cn/library/e8z5184w(VS.80).aspx
[2] http://www.microsoft.com/china/msdn/archives/library/dnaspp/html/aspnet-usingtreeviewiewebcontrol.asp
[3] John Kauffman,Brian Matsik(美).ASP.NET数据库入门经典(C#篇)[M].清华大学出版社,2003.3
[4]李应伟,姚素霞,景丽.ASP.NET数据库高级教程(C#篇)[M].清华大学出版社,2004.7
[5]郝刚,袁永刚,齐艳.ASP.NET服务器控件开发技术与实例[M].人民邮电出版社,2005.1
[6]李贵辉,李兰友.基于Web的备课系统的设计与实现[J].教育信息化(学术),2006.3