ASP.NET2.0中 TreeView 和ORACLE 数据绑定的一种方法

简介

TreeView 是一个 ASP.NET 服务器控件,可以生成用于显示分层数据的用户界面。与其他 Microsoft® Internet Explorer WebControl 一样,TreeView 控件也会根据浏览器的类型来发送 HTML。在低级浏览器中,TreeView ASP.NET 服务器控件发送的页面内容是 HTML 3.2 格式的,而在高级浏览器中,HTML 页面还使用了 DHTML 行为,DHTML 行为是定义了自定义元素的客户端组件。对于 WebControl,高级浏览器指 Internet Explorer 5.5 或更高版本,低级浏览器指 Internet Explorer 5.01 或更低版本,或者是 Internet Explorer 以外的其他浏览器。

TreeView 元素

您可以结合使用一个或多个由客户端和服务器端的 TreeView 组件支持的以下元素来创建 TreeView

元素名称 说明
TreeView 定义一个 TreeView。
TreeNodeType 定义一个节点类型,适用于 TreeView 中的一个或一组节点。
TreeNode TreeView 中创建一个节点。

一些属性

1、autoselect=”false”:当访问者在treeview控件中对节点进行定位时,可以使用键盘上的箭头来进行定位。属性值为“false“,则不允许这样做。
2、Showplus=”true”:当两个节点收到一起的时候,你可以显示一个加号(+),访问者就知道这个节点可以展开,该属性值为“true“将使用加号,否则不使用。
3、Showlines=”true”:在一个treeview控件中的两个节点之间,可以显示一些线长,为”true”显示。
4、Expandlevel=2:用来定义treeview控件的层次结构展开的级别数。
5、navigateurl:点击节点时的跳转网址

下面通过一个例子来说明

本例子中有三层树形结构,分别放在三个表中,我们通过while 循环 顺序读取所有数据,建立treenode


protected void Page_Load(object sender, EventArgs e)
    {
        tv.Nodes.Clear();
        OracleConnection ocon = ado.oraconnecttion();
        ocon.Open();
        OracleCommand ocmd = new OracleCommand("select id,des from S_MODULE order by id",ocon);
        OracleDataReader oda = ocmd.ExecuteReader();
        while (oda.Read())//第一层循环
        {
            TreeNode tn1 = new TreeNode();//定义节点
            tn1.Text = oda[1].ToString();//节点属性设置
            tn1.Target = "NodeEdit";//链接目标
            tn1.NavigateUrl = "MODULEEdit.asp?MODULEID=" + oda[0].ToString();//链接地址
            OracleCommand ocmd1 = new OracleCommand("select id,des from S_TASKTYPE where MODULE='" + oda[0].ToString() +"' order by id",ocon);
            OracleDataReader oda1 = ocmd1.ExecuteReader();
            while(oda1.Read())//第二层循环
            {
            TreeNode tn2=new TreeNode();//定义第二存节点
                tn2.Text=oda1[1].ToString();
                tn2.Target = "NodeEdit";
                tn2.NavigateUrl = "TASKTYPEEdit.asp?TASKTYPEID=" + oda1[0].ToString();
                OracleCommand ocmd2 = new OracleCommand("select ID,DES from S_NODE where TASKID='"+oda1[0].ToString()+"' order by id",ocon);
                OracleDataReader oda2 = ocmd2.ExecuteReader();
                while (oda2.Read())//循环第三层
                {
                    TreeNode tn3 = new TreeNode();//第三层属性设置
                    tn3.Text = oda2[1].ToString();
                    tn3.Target = "NodeEdit";
                    tn3.NavigateUrl = "NodeEdit.asp?NodeID=" + oda2[0].ToString();
                    tn3.ImageUrl = "image/page.png";//设置图形
                    tn2.ChildNodes.Add(tn3);//把第三层设置为第二层的子层
                }
                oda2.Close();
                tn1.ChildNodes.Add(tn2);//把第二层设置为第一层的子层
            }
            oda1.Close();
            tv.Nodes.Add(tn1);把第一层节点加入treeview 中
        }
        oda.Close();
        ocon.Close();
       
    }//这样经过一次的循环就可以把第一节点的所有子节点全部列出了,即"综合办公"中所有内容


不知道还有没有其他方法和想法,希望各位多出出注意

posted @ 2006-04-21 19:47  New Yang Bo Element  阅读(2489)  评论(3编辑  收藏  举报