asp.net中 怎么动态读取数据库中信息,并建立树形目录???
在线等!!

解决方案 »

  1.   

    在TREEVIEW控件中的node属性调用add()方法可以动态添加!! 网上有太多关于treeview控件的详细使用方法。在此不再详述
      

  2.   

    第二个问题:treeview控件与数据库动态绑定(即添加数据时就databind()即可)
      

  3.   

    请问如果是Web应用呢,webform里面用不了TreeView吧??
      

  4.   

    递归邦定,参考:
     public static void bindTv(TreeView treeview)
            {
                DataSet ds;
                DataSet dsChannels;
                DBProvider db = new DBProviderFactory().Creater(Constant.GetConnStr());
                try
                {
                    treeview.Nodes.Clear();
                    //
                    System.Web.UI.WebControls.TreeNode root = new TreeNode();
                    //Microsoft.Web.UI.WebControls.TvNode root = new Microsoft.Web.UI.WebControls.TvNode();                ds = db.ExecuteSpDataset("procedure");                foreach (DataRow dr in ds.Tables[0].Rows)
                    {
                        System.Web.UI.WebControls.TreeNode tr = new TreeNode();
                        tr.Text = "<font color=\"#666666\">"+"站点" + dr["PortalID"].ToString()+"</font>";
                        tr.Value = ChannelNodeType.PortalID + dr["PortalID"].ToString();
                        
                        treeview.Nodes.Add(tr);
                        dsChannels = db.ExecuteSpDataset("p_cqut_CMS_GetPortalChannels", dr["PortalID"].ToString());
                        TreeProvider.bindTvNode(dsChannels, tr);
                    }
                }
                catch (Exception ex)
                {
                    throw ex;
                }
            }
                   public static void bindTvNode(DataSet dsNode, System.Web.UI.WebControls.TreeNode tn)
            {
                DataSet dsPortal;
                DataSet dsCms;
                DBProvider db = new DBProviderFactory().Creater(Constant.GetConnStr());
                foreach (DataRow drN in dsNode.Tables[0].Rows)
                {
                    System.Web.UI.WebControls.TreeNode trN = new TreeNode();
                    trN.Text = "<font color=\"#666666\">" + drN["ChannelDisplayName"].ToString() + "</font>";
                    trN.Value = ChannelNodeType.PortalChannelID + drN["ChannelID"].ToString();
                    trN.SelectAction = TreeNodeSelectAction.SelectExpand;
                    tn.ChildNodes.Add(trN);
                    dsPortal = db.ExecuteSpDataset("procedure", int.Parse(drN["ChannelID"].ToString()));
                    dsCms = db.ExecuteSpDataset("procedure", int.Parse(drN["ChannelID"].ToString()));
                    TreeProvider.bindTvNode(dsPortal, trN);
                    TreeProvider.bindTvLocalNode(dsCms, trN);
                }
            }
                    public static void bindTvLocalNode(DataSet dsNode, System.Web.UI.WebControls.TreeNode tn)
            {            DataSet dsCms;
                DBProvider db = new DBProviderFactory().Creater(Constant.GetConnStr());
                foreach (DataRow drN in dsNode.Tables[0].Rows)
                {
                    System.Web.UI.WebControls.TreeNode trN = new TreeNode();
                    trN.Text = drN["ChannelDisplayName"].ToString();
                    trN.Value = ChannelNodeType.CMSChannelID + drN["ChannelID"].ToString();
                    trN.SelectAction = TreeNodeSelectAction.SelectExpand;
                    tn.ChildNodes.Add(trN);
                    dsCms = db.ExecuteSpDataset("procedure", int.Parse(drN["ChannelID"].ToString()));
                    TreeProvider.bindTvLocalNode(dsCms, trN);
                }
            }