首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > .NET > C# >

treeview数据绑定解决方案

2012-03-08 
treeview数据绑定1.1部门表的字段列表名称代码数据类型长度精确度主要的外来键编码BIDNUMBER(4)4TRUEFALSE

treeview数据绑定
1.1   部门表的字段列表
名称代码数据类型长度精确度主要的外来键
编码BIDNUMBER(4)4TRUEFALSE
中文名称DMMCVARCHAR2(100)100FALSEFALSE
俄文名称DMMC_RUVARCHAR2(200)200FALSEFALSE
父级编码PARENT_IDNUMBER(4)4FALSEFALSE
顺序号ORDERIDNUMBER(4)4FALSEFALSE
层次级别CLEVELNUMBER(4)4FALSEFALSE
电话TELVARCHAR2(20)20FALSEFALSE
邮件EMAILVARCHAR2(30)30FALSEFALSE
联系人LINKMANVARCHAR2(100)100FALSEFALSE


这是我的数据表

我要做一个treeview数据绑定,我实在做不出来了,这下面是我的源码,大家帮我看看是哪里错了~~谢谢!!!


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   Amg.DataAccess;
using   Amg.Business;
using   Amg.Common;
using   System.Data.OracleClient;

public   partial   class   rsjg_Default   :   System.Web.UI.Page
{
        ///   <summary>
        ///   作者:mrhu
        ///   </summary>
        private   string   Bid   =   " ";
        private   int   Count   =   0;
        protected   void   Page_Load(object   sender,   EventArgs   e)
        {
                if   (!IsPostBack)
                {
                        Loads();
                }
                if   (Request.QueryString[ "Bid "]   !=   null)
                {
                        Bid   =   Request.QueryString[ "Bid "].ToString();
                }

                for   (int   i   =   0;   i   <   Tree_Left.Nodes.Count;   i++)
                {
                        if   (Tree_Left.Nodes[i].Value   ==   Bid)
                        {
                                Tree_Left.Nodes[i].Selected   =   true;
                                Tree_Left.Nodes[i].Expanded   =   true;
                        }
                        else
                        {
                                SelectNode(Tree_Left.Nodes[i],   Bid);
                        }


                }
        }

        private   void   Loads()
        {
                try
                {
                        int   m   =   Convert.ToInt32(Bsrsjg.ExRead( "select   count(*)   conts   from   tbl_dept ",   "conts "));
                        int   k   =   0;
                        TreeNode[]   myNodes   =   new   TreeNode[m];
                        //OracleDataReader   dr   =Bsrsjg.TreeViewBind( "select   *   from   TBL_DEPT ");
                        OracleConnection   cn   =   COracle.GetConn();
                        OracleCommand   cmd   =   cn.CreateCommand();
                        cmd.CommandText   =   "select   *   from   TBL_DEPT ";
                        cn.Open();
                        OracleDataReader   dr   =   cmd.ExecuteReader();
                                for   (int   i   =   0;   i   <   myNodes.Length;   i++)
                                {
                                        myNodes[i]   =   new   TreeNode();
                                }
                                if   (dr.Read())
                                {
                                        while   (dr.Read())
                                        {
                                                int   iParentNodeId   =   0;
                                                if   (dr[ "PARENT_ID "].ToString()   ==   " "   ||   dr[ "PARENT_ID "]   ==   null)//   System.DBNull.Value)
                                                {


                                                        iParentNodeId   =   0;
                                                }
                                                else
                                                {
                                                        iParentNodeId   =   Convert.ToInt32(dr[ "PARENT_ID "]);
                                                }
                                                //iParentNodeId   =   0;
                                                int   iMyNodeId   =   k;   //   Convert.ToInt32(dr[ "BID "]);
                                                            k++;
                                                if   (iParentNodeId   !=   0)
                                                {
                                                        if   (Session[ "LFlag "]   ==   "0 ")
                                                        {
                                                                myNodes[iMyNodeId].Text   =   dr[ "DMMC "].ToString();
                                                        }
                                                        else
                                                        {


                                                                myNodes[iMyNodeId].Text   =   dr[ "DMMC_RU "].ToString();
                                                        }
                                                        myNodes[iMyNodeId].Value   =   dr[ "BID "].ToString();
                                                        myNodes[iMyNodeId].NavigateUrl   =   "Dept_List.aspx?Bid= "   +   myNodes[iMyNodeId].Value;
                                                        myNodes[iMyNodeId].Target   =   "main1 ";
                                                        myNodes[iParentNodeId].ChildNodes.Add(myNodes[iMyNodeId]);
                                                        //myNodes[iMyNodeId].ChildNodes.Add(myNodes[iMyNodeId]);
                                                }
                                                else
                                                {
                                                        if   (Session[ "LFlag "]   ==   null   ||   Session[ "LFlag "].ToString()   ==   " ")
                                                        {
                                                                myNodes[iMyNodeId].Text   =   dr[ "DMMC "].ToString();
                                                        }
                                                        else


                                                        {
                                                                myNodes[iMyNodeId].Text   =   dr[ "DMMC "].ToString();
                                                        }
                                                        myNodes[iMyNodeId].Value   =   dr[ "BID "].ToString();
                                                        myNodes[iMyNodeId].NavigateUrl   =   "Dept_List.aspx?Bid= "   +   myNodes[iMyNodeId].Value;
                                                        myNodes[iMyNodeId].Target   =   "main1 ";
                                                        //myNodes[iMyNodeId].SelectAction   =   TreeNodeSelectAction.None;
                                                        Tree_Left.Nodes.Add(myNodes[iMyNodeId]);
                                                }
                                           
                                        }
                                       
                                }
                        cn.Close();
                        Tree_Left.ExpandDepth   =   1;
                }
                catch   (Exception   ex)
                {
                        ex.ToString().Replace( "\n ",   " <br> ");
                        Response.Write(ex);                
                }


        }
        private   void   SelectNode(TreeNode   node,   string   Bid)
        {
               
                for   (int   i   =   0;   i   <   node.ChildNodes.Count;   i++)
                {
                        if   (node.ChildNodes[i].Value   ==   Bid)
                        {
                                SetExpan(node.ChildNodes[i]);
                                break;
                        }
                        else
                        {
                                SelectNode(node.ChildNodes[i],   Bid);
                        }
                }
               
        }

        private   void   SetExpan(TreeNode   node)
        {          
                TreeNode   node1   =   node.Parent;
                if   (Count   ==   0)
                {
                        //node.Selected   =   true;
                }
                node.Expanded   =   true;
                if(node1!=null)
                if   (node1.ChildNodes.Count   !=   0)
                {
                        Count   =   Count   +   1;
                        SetExpan(node1);
                }
        }

}




[解决办法]
你哪里不明白,或者不清楚,可以提出问题
你这样把这么多的代码贴出来,谁愿意给你一条一条的看啊
[解决办法]
用队列!
首先读取所有的根节点放入队列中,循环队列中的每一个节点(出队),再把每个节点的所有子节点放入队列中,直到队列为空为止!

热点排行