using System;
using System.Data;
using System.Configuration;
using System.Collections;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.ComponentModel;
using System.Drawing;
using System.Web.SessionState;
using Microsoft.Web.UI.WebControls;
using System.Data.OracleClient;
namespace treeCS
{
    ///
    /// report 的摘要说明
    ///
    public partial class report : System.Web.UI.Page
    {
        protected Microsoft.Web.UI.WebControls.TreeView TreeView1;        protected void Page_Load(object sender, EventArgs e)
        {
            //定义数据库连接
            OracleConnection CN = new OracleConnection();
            try
            {
                //初始化连接
                CN.ConnectionString = "Data Source=test;User ID=gxjd;Password=gxjd;Unicode=True;";
                CN.Open();                OracleDataAdapter adp = new OracleDataAdapter("select upunit,class from unit", CN);
                DataSet ds = new DataSet();
                adp.Fill(ds);
                this.ViewState["ds"] = ds;
            }
            catch (Exception ex)
            {
                Session["Error"] = ex.ToString();
                Response.Redirect("error.aspx");  //跳转到公共错误页面
            }
            finally
            {
                CN.Close();
            }
            //调用递归函数,完成书结构的生成
            AddTree(0, (TreeNode)null);
        }        //递归添加树节点
        public void AddTree(int upunit,Microsoft.Web.UI.WebControls.TreeNode pNode)
        {
            DataSet ds = (DataSet) this.ViewState["ds"];
            DataView dvTree = new DataView(ds.Tables[0]);
            //过滤UPUNIT,得到当前所有子节点
            dvTree.RowFilter = "[upunit] = " + upunit;            foreach(DataRowView Row in dvTree)
            {
                TreeNode Node = new TreeNode();
                if(pNode == null)
                {
                    //添加根节点
                    Node.Text = Row["class"].ToString();
                    TreeView1.Nodes.Add(Node);
                    Node.Expanded = true;
                    AddTree(Int32.Parse(Row["upunit"].ToString()),Node);
                }
                else
                {
                    //添加当前节点的子节点
                    Node.Text = Row["class"].ToString();
                    pNode.Nodes.Add(Node);
                    Node.Expanded = true;
                    AddTree(Int32.Parse(Row["upunit"].ToString()),Node);
                }
            }
        }       #region Web Form Designer generated code
        override protected void OnInit(EventArgs e)
        {
            //
            // CODEGEN 该调用是ASP.NET Web 窗体设计器所必需的。
            //
            IntializeComponent();
            base.OnInit(e);
        }        /// <summary>
        /// 设计器支持所需要的方法 - 不要使用码编辑器修改
        /// 此方法的内容
        /// </summary>
        private void InitializeComponent()
        {
            this.Load += new System.EventHandler(this.Page_Load);
        }
       #endregion
    }
}编译错误 
说明: 在编译向该请求提供服务所需资源的过程中出现错误。请检查下列特定错误详细信息并适当地修改源代码。 编译器错误信息: ASPNET: 请确保此代码文件中定义的类与“inherits”属性匹配,并且该类扩展的基类(例如 Page 或 UserControl)是正确的。源错误: 行 19:     /// report 的摘要说明
行 20:     ///
行 21:     public partial class report : System.Web.UI.Page
行 22:     {
行 23:         protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
 源文件: c:\Inetpub\wwwroot\WebSite\report.aspx.cs    行: 21 

解决方案 »

  1.   

    private void InitTree(Microsoft.Web.UI.WebControls.TreeNodeCollection Nds,string parentId,DataSet ds)
    {
    Microsoft.Web.UI.WebControls.TreeNode tnode;
    DataView dv=ds.Tables[0].DefaultView;
    foreach(DataRowView drv in dv)
    {
    if (drv["nodeparentid"].ToString()==parentId)
    {
    tnode=new Microsoft.Web.UI.WebControls.TreeNode();
    tnode.ID=drv["colid"].ToString();

    tnode.Text=drv["nodename"].ToString();
    tnode.NavigateUrl="javascript:getNodeText('"+drv["colid"].ToString()+"','"+drv["colname"].ToString()+"');";
    Nds.Add(tnode);
    InitTree(tnode.Nodes,drv["nodeid"].ToString(),ds);
    }
    }
    }调用:InitTree(this.treeview1.nodes,"",ds)
    说明:
    建表格式
    nodeid    nodetext    nodeparentid
    a001       广东省         null
    a002       广州市         a001
    a003       中山大道       a002
    a004       湖北省         null
    a005       武汉           a004显示树为:
        广州省
            广州市
                中山大道
        湖北省
            武汉
      

  2.   

    写错了,忘了给你改几个字段了
    见下面:
    private void InitTree(Microsoft.Web.UI.WebControls.TreeNodeCollection Nds,string parentId,DataSet ds)
    {
    Microsoft.Web.UI.WebControls.TreeNode tnode;
    DataView dv=ds.Tables[0].DefaultView;
    foreach(DataRowView drv in dv)
    {
    if (drv["nodeparentid"].ToString()==parentId)
    {
    tnode=new Microsoft.Web.UI.WebControls.TreeNode();
    tnode.ID=drv["nodeid"].ToString();

    tnode.Text=drv["nodetext"].ToString();
    //tnode.NavigateUrl="javascript:getNodeText('"+drv["nodeid"].ToString()+"','"+drv["nodetext"].ToString()+"');";
    Nds.Add(tnode);
    InitTree(tnode.Nodes,drv["nodeid"].ToString(),ds);
    }
    }
    }
      

  3.   

    高手,帮忙写个完整的好吗?用的ORACLE数据库的啊,我用的的代码呀是出错啊.
    有高手帮一下了,很急啊.帮帮手啊
      

  4.   

    还是一样的错误提示啊.public partial class report : System.Web.UI.Page
    过不去啊