ASP.NET中TreeView的运用
点击次数:22 次 发布日期:2008-11-27 02:03:14 作者:源代码网
|
源代码网推荐 首先需要创建一个数据库表test,字段包括NODEID、PARENTID、NODENAME、ADDERSS、ICON、linkUrLNODEID是在数据库中作为节点的唯一标识,这里为了方便,将其设置为标识; 源代码网推荐 源代码网推荐 PARENTID表示每个节点的上级节点ID,如该节点无上级,则为0; 源代码网推荐 源代码网推荐 NODENAME是节点在页面上显示的名称; 源代码网推荐 源代码网推荐 以上三个字段应不能为空 源代码网推荐 源代码网推荐 ADDERSS地址;ICON节点图片;linkUrL节点链接地址; 源代码网推荐 源代码网推荐 以上三个字段用与不用不是必须的,因实际情况而定,这里因为使用到所以列出来 源代码网推荐 源代码网推荐 接着向设计窗体添加一个treeview控件如果还没添加过此控件的请到以下地址下载并安装,添加引用Microsoft.Web.UI.WebControls.dll然后到工具箱内添加控件http://msdn.microsoft.com/archive/en-us/samples/internet/asp_dot_net_servercontrols/webcontrols/default.asp 源代码网推荐 源代码网推荐 下面是aspx.cs部分的代码 源代码网推荐 源代码网推荐 using System; 源代码网推荐 using System.Collections; 源代码网推荐 using System.ComponentModel;using System.Data;using System.Drawing; 源代码网推荐 using System.Web;using System.Web.SessionState; 源代码网推荐 using System.Web.UI;using System.Web.UI.WebControls; 源代码网推荐 using System.Web.UI.HtmlControls; 源代码网推荐 using Microsoft.Web.UI.WebControls; 源代码网推荐 namespace IOA{ 源代码网推荐 /// <summary> /// WebForm1 的摘要说明。 源代码网推荐 /// </summary> 源代码网推荐 public class WebForm1 : System.Web.UI.Page 源代码网推荐 { protected Microsoft.Web.UI.WebControls.TreeView TreeView1; 源代码网推荐 protected Classes.Deptartment myDt=new IOA.Classes.Deptartment();//我把与数据库链接以及对数据库的操作请求写在此类中 这里数据库的链接就不具体写出来了,链接数据库以后 通过select * from test返回值传给程序中的ds变 量即可,记得返回的值的类型是DataSet 源代码网推荐 private void Page_Load(object sender, System.EventArgs e) 源代码网推荐 { InitTreeView(this.TreeView1.Nodes); 源代码网推荐 // 在此处放置用户代码以初始化页面 } 源代码网推荐 public void InitTreeView(TreeNodeCollection node) 源代码网推荐 { 源代码网推荐 this.InitTree(node,"0"); 源代码网推荐 } 源代码网推荐 public void InitTree(TreeNodeCollection Nds,string parentId) 源代码网推荐 { 源代码网推荐 DataSet ds=new DataSet(); 源代码网推荐 ds=myDt.TreeInfo(); 源代码网推荐 DataView dv = new DataView(); 源代码网推荐 TreeNode tmpNd; 源代码网推荐 string intId; 源代码网推荐 dv.Table = ds.Tables[0]; 源代码网推荐 dv.RowFilter = "PARENTID = " + parentId; 源代码网推荐 foreach(DataRowView drv in dv) { 源代码网推荐 tmpNd = new TreeNode(); 源代码网推荐 tmpNd.ID = drv["NODEID"].ToString(); 源代码网推荐 if(drv["linkUrL"].ToString().Trim() != "") 源代码网推荐 { 源代码网推荐 tmpNd.Text = "<a href =""+drv["linkUrL"].ToString().Trim() +""target="mainFrame">"+drv["NODENAME"].ToString()+"</a>"; 源代码网推荐 } 源代码网推荐 else 源代码网推荐 { 源代码网推荐 tmpNd.Text = drv["NODENAME"].ToString(); 源代码网推荐 } 源代码网推荐 Nds.Add(tmpNd); 源代码网推荐 intId = drv["PARENTID"].ToString(); 源代码网推荐 InitTree(tmpNd.Nodes,tmpNd.ID); 源代码网推荐 } 源代码网推荐 } 源代码网推荐 #region Web 窗体设计器生成的代码 override protected void OnInit(EventArgs e) 源代码网推荐 { 源代码网推荐 // 源代码网推荐 // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 源代码网推荐 // 源代码网推荐 InitializeComponent(); 源代码网推荐 base.OnInit(e); 源代码网推荐 } 源代码网推荐 /// <summary> 源代码网推荐 /// 设计器支持所需的方法 - 不要使用代码编辑器修改 源代码网推荐 /// 此方法的内容。 源代码网推荐 /// </summary> private void InitializeComponent() 源代码网推荐 { 源代码网推荐 this.Load += new System.EventHandler(this.Page_Load); 源代码网推荐 } #endregion }} 源代码网推荐 源代码网推荐 源代码网推荐 源代码网供稿. |
