从数据库中读取所有数据动态生成TreeView目录,然后根据查询条件生成%

场景:急初始化从数据库中读取所有数据动态生成TreeView目录,然后根据查询条件生成相应的树型结构,该怎么解决

急.....初始化从数据库中读取所有数据动态生成TreeView目录,然后根据查询条件生成相应的树型结构
目录树至少有四级,初始化从数据库中读取所有数据动态生成TreeView目录,然后可以根据查询条件生成相应的树型结构,并指定节点相应的链接页面.
现在存在的问题是,生成出来的节点查询后无法动态生成相应链接,而且初始化生成的节点链接的ID值都不正确.(代码如下)
        //递归绑定同一个表数据
        private   void   InitTree()
        {
                DataTable   dt   =   GetTreeViewTable();
                DataView   dv   =   new   DataView(dt);

                string   Gvalue,   bvalue,   dvalue,   hvalue;
                Gvalue   =   DwGdj.SelectedValue.ToString();
                bvalue   =   DwBdz.SelectedValue.ToString();
                dvalue   =   Dwdy.SelectedValue.ToString();
                hvalue   =   Dwhy.SelectedValue.ToString();

                if   (Gvalue   !=   " ")   {   dv.RowFilter   =   "SubBureauid= ' "   +   Gvalue   +   " ' ";   }
                if   (bvalue   !=   " ")   {   dv.RowFilter   =   "tsid= ' "   +   bvalue   +   " ' ";   }
                if   (dvalue   !=   " ")   {   dv.RowFilter   =   "vrid= ' "   +   dvalue   +   " ' ";   }
                if   (hvalue   !=   " ")   {   dv.RowFilter   =   "tradeid= ' "   +   hvalue   +   " ' ";   }
                if   (Gvalue   ==   " "   &   bvalue   ==   " "   &   dvalue   ==   " "   &   hvalue   ==   " ")   {   dv.RowFilter   =   "[Parent]= '0 ' ";   }

                string   sUrl   =   string.Empty;
                foreach   (DataRowView   drv   in   dv)
                {
                        TreeNode   node   =   new   TreeNode();
                        if   (WasteGroup.Checked   ==   true)
                        {
                                node.Text   =   drv[ "WGName "].ToString();
                                node.Value   =   drv[ "WGid "].ToString();
                                node.ToolTip   =   drv[ "WGName "].ToString();
                        }
                        if(TotalGroup.Checked   ==   true)
                        {
                                node.Text   =   drv[ "SGName "].ToString();
                                node.Value   =   drv[ "SGid "].ToString();
                                node.ToolTip   =   drv[ "SGName "].ToString();
                          }
                        node.Expanded   =   true;
                        TreeGroup.Nodes.Add(node);
                        AddReplies(dt,node);
                }
        }
       
        //获取查询条件并将结果赋给DataTable
        private   DataTable   GetTreeViewTable()
        {
                string   Gvalue,   bvalue,   dvalue,   hvalue;
                Gvalue   =   DwGdj.SelectedValue.ToString();
                bvalue   =   DwBdz.SelectedValue.ToString();
                dvalue   =   Dwdy.SelectedValue.ToString();
                hvalue   =   Dwhy.SelectedValue.ToString();

                string   TableName= " ";
                if   (WasteGroup.Checked   ==   true)   {   TableName   =   "WasteGroup ";   }else{   TableName   =   "StatisticGroup ";   }
                SqlConnection   strconn   =   Conn.CreateConnection();
                strconn.Open();
                string   sql   =   "select   *   from   "   +   TableName   + "   where   1=1   ";
                if   (Gvalue   !=   " ")   {   sql   =   sql   +   "And   SubBureauid   = "   +   Gvalue;   }
                if   (bvalue   !=   " ")   {   sql   =   sql   +   "And   tsid   = "   +   bvalue;   }
                if   (dvalue   !=   " ")   {   sql   =   sql   +   "And   vrid   = "   +   dvalue;   }
                if   (hvalue   !=   " ")   {   sql   =   sql   +   "And   tradeid   = "   +   hvalue;   }

                SqlDataAdapter   da   =   new   SqlDataAdapter();
                da.SelectCommand   =   new   SqlCommand(sql,   strconn);
                DataTable   dt   =   new   DataTable();
                da.Fill(dt);
                strconn.Close();
                return   dt;
        }

        //生成目录树
        private   void   AddReplies(DataTable   dt,   TreeNode   node)
        {
                string   sUrl   =   string.Empty;
                DataView   dv   =   new   DataView(dt);
                dv.RowFilter   =   "[Parent]= ' "+node.Value+ " ' ";
                foreach   (DataRowView   row   in   dv)
                {
                        TreeNode   replyNode   =   new   TreeNode();
                        if   (WasteGroup.Checked   ==   true)
                        {
                                replyNode.Text   =   row[ "WGName "].ToString();
                                replyNode.Value   =   row[ "WGid "].ToString();
                                replyNode.ToolTip   =   row[ "WGName "].ToString();
                                string   wgid   =   row[ "wgid "].ToString();
                                sUrl   =   "GroupView.aspx?id= "   +   row[ "WGid "].ToString()   +   "&Name= "   +   row[ "WGName "].ToString()   +   "&tid= "   +   "1 ";
                        }
                        else
                        {
                                replyNode.Text   =   row[ "SGName "].ToString();
                                replyNode.Value   =   row[ "SGid "].ToString();
                                replyNode.ToolTip   =   row[ "SGName "].ToString();
                                sUrl   =   "GroupView.aspx?id= "   +   row[ "SGid "].ToString()   +   "&Name= "   +   row[ "SGName "].ToString()   +   "&tid= "   + "0 ";
                        }
                        replyNode.Expanded   =   true;
                        node.NavigateUrl   =   sUrl;
                        node.Target   =   "mainFrame ";
                        node.ChildNodes.Add(replyNode);
                        if   (node.ChildNodes.Count   >   0)
                        {
                                for   (int   j   =   0;   j   <   node.ChildNodes.Count;   j++)
                                {
                                        node.ChildNodes[j].NavigateUrl   =   sUrl;
                                        node.ChildNodes[j].Target   =   "mainFrame ";
                                }
                        }  
                        AddReplies(dt,replyNode);
                }
        }


------解决方案--------------------
睡觉喽,
帮你顶一下,明天再看。
------解决方案--------------------
帮你顶一下