不是在设计的时候生成而是用程序生成?

解决方案 »

  1.   

    说具体一点,可以先把TREEVIE先存到数据库,用时把它调出来嘛。
      

  2.   

    Dim node As New TreeNode
            Dim node1 As New TreeNode
            
                node = New TreeNode
                node.ImageUrl = "../images/treeimage/xttb/Apple Folder 9.gif"
                node.Text = "父节点"
                node.NavigateUrl = "menutr.aspx"
                TreeView1.Nodes.Add(node)
    '添加子节点
                       node1 = New TreeNode
                node1.Text = "子节点"                node1.Target = "main1"
                    node1.ImageUrl = "../images/treeimage/sjtb/arrow.gif"
                    node1.SelectedImageUrl = "../images/treeimage/sjtb/arrow1.gif"
                    node1.NavigateUrl = "../project/Model_List.aspx?proj_code=" & proj_code & ""
                    node.Nodes.Add(node1)
      

  3.   

    知道VB的代码了,呵呵
    谢谢大家,有C#的好代码吗
    我好揭贴啊
      

  4.   

    private void intiTree(TreeNodeCollection Nds , int parentId)
    {
    DataView dv=new DataView() ;
    TreeNode tmpNd;
    int strId;
    dv.Table = objDataSet.Tables["TREE_INFO"];
    dv.RowFilter = "PARENTID='" + parentId + "'"; 

    foreach(DataRowView objRow in dv)
    {
    tmpNd=new TreeNode();
    strId=(int)objRow["NODEID"];
    tmpNd.ID=strId.ToString();
    tmpNd.Text=objRow["MAPCNNAME"].ToString();
    tmpNd.ExpandedImageUrl ="images/"+objRow["ImgEx"].ToString();
    tmpNd.ImageUrl="images/"+objRow["Img"].ToString() ;
    tmpNd.NodeData=objRow["DATASET_ID"].ToString();
    if(objRow["DATASET_ID"].ToString()!="") tmpNd.NavigateUrl ="javascript:NodeClick('"+tmpNd.Text+"','"+tmpNd.NodeData+"');";
    Nds.Add(tmpNd);
    intiTree(Nds[Nds.Count-1].Nodes,strId);
    }
    }
    private void CreateDataSet() 
    {
    SqlConnection dbconn=new SqlConnection(MyConnectString);
    string strSql  ="select * from TREE_INFO";
                                DataSet objDataSet=new DataSet();
    SqlDataAdapter MyAdapter=new SqlDataAdapter(strSql,myConnection);
    MyAdapter.Fill(ds,"Authors");
    objDataSet=dbconn.CreateDataSet(strSql,"TREE_INFO");
    dbconn.CloseConn();
    }
      

  5.   

    #region 递归生成树
            /// <summary>
            /// 递归生成树
            /// </summary>
            /// <param name="Tnc">树节点</param>
            /// <param name="ParentID">父id</param>
            private void InitTree(TreeNodeCollection Tnc,string ParentID)
            {
                DataView dv=new DataView();
                TreeNode tmpNode;
                dv.Table=dSet.Tables[0];
                dv.RowFilter="ParentFolderID='" + ParentID + "'";
                foreach(DataRowView drv in dv)
                {
                    tmpNode=new TreeNode();
                    tmpNode.ID=drv["FolderID"].ToString().Trim();
                    tmpNode.Text=drv["FolderName"].ToString().Trim();
                    tmpNode.Target="right";
                    tmpNode.ImageUrl="../images/Folder.gif";
                    tmpNode.NavigateUrl="MailRecord.aspx?FolderID=" + tmpNode.ID.Trim();//传递节点的id(文件夹id)
                    tmpNode.Expanded=false;
                    Tnc.Add(tmpNode);
                    InitTree(tmpNode.Nodes,tmpNode.ID);
                }
            }
            #endregion
    我的原代码,自己参考改改.
      

  6.   

    /**
     * 初始化树型控件,并填充数据
     **/
    public void initTree(TreeNodeCollection nds,int AddressParentID)
    {
    DataView dv = new DataView();
    dv.Table = ds.Tables["address"]; TreeNode tmp = null;
    int strId = 0; dv.RowFilter = "AddressParentID='"+AddressParentID+"'";

    foreach(DataRowView drv in dv)
    {
    tmp = new TreeNode();
    strId = int.Parse(drv["AddressID"].ToString());
    tmp.Text = drv["Address"].ToString();
    nds.Add(tmp);

    initTree(nds[nds.Count - 1].Nodes,strId); 
    }
    }
      

  7.   

    give you a example ,if you have a dataset contains columns id , name , parent_id,you can do like this :
    #region CreateTree
    /// <summary>
    /// Create a tree by given root node from a dataset , if the dataset doesn't contains the id , it will throw a ISDException
    /// </summary>
    /// <param name="oDsNodes">Source DataSet contains columns id , name , parent_id</param>
    /// <param name="nID">The root of the tree</param>
    /// <returns></returns>
    public string  CreateTree(DataSet oDsNodes , int nID)
    {
    string sReturn = "<Node ID='" + nID.ToString();
    string sTemp = "";
    bool bExsit = false;
    for(int i = 0 ; i < oDsNodes.Tables[0].Rows.Count ; i++)
    {
    int nParentID = int.Parse(oDsNodes.Tables[0].Rows[i]["PARENT_ID"].ToString());
    int nTempID = int.Parse(oDsNodes.Tables[0].Rows[i]["ID"].ToString());
    if(nID == nParentID)
    {
    sTemp+= CreateTree(oDsNodes , nTempID);
    }
    if(nID == nTempID)
    {
    string sTempName = oDsNodes.Tables[0].Rows[i]["NAME"].ToString().Trim();
    sReturn += "' Name='" + sTempName + "'>";
    bExsit = true;
    }
    }
    if(!bExsit)
    {
    throw new ISDException("Can not found this node");
    }
    sReturn += sTemp + "</Node>";
    return sReturn;
    }
    #endregion
      

  8.   

    using System;
    using System.Collections;
    using System.ComponentModel;
    using System.Data;
    using System.Drawing;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using System.Data .OleDb;
    using Microsoft.Web.UI.WebControls;
    using System.Configuration ;
    using System.Text.RegularExpressions ;
    namespace ydmis_ls_web
    {
    /// <summary>
    /// left 的摘要说明。
    /// </summary>
    public class left : System.Web.UI.Page
    {
    protected Microsoft.Web.UI.WebControls.TreeView TreeView1;
    public System.Data.OleDb.OleDbConnection oleDbConnection1;


    private void Page_Load(object sender, System.EventArgs e)
    {
    // 在此处放置用户代码以初始化页面

    string  strTreeName  =  "TreeView1";  
    string  strRef  =  Page.GetPostBackEventReference(TreeView1);  
    string  strScript  =  "<script  language=\"JavaScript\">  \n"  +  "<!--  \n"  +  "            function  initTree()  {  \n"  +"                        "  +  strTreeName  +  ".onSelectedIndexChange  =  function()  {  \n"  +    "if  (event.oldTreeNodeIndex  !=    event.newTreeNodeIndex)  \n"  +  "this.queueEvent('onselectedindexchange',  event.oldTreeNodeIndex  +  ','  +  event.newTreeNodeIndex);  \n"  +    "window.setTimeout('"  +  strRef.Replace("'","\\'")    +  "',  0,  'JavaScript');  \n"  +    "                        }  \n"  +      "            }  \n"  +    "//  -->  \n"  +  "</script>";  
    Page.RegisterClientScriptBlock("InitTree",strScript  );  if (!Page.IsPostBack)
    {
    this.oleDbConnection1=new OleDbConnection( ConfigurationSettings.AppSettings.GetValues(0)[0]); oleDbConnection1.Open ();
          
    TreeNode node=new TreeNode();

    TreeView1.Nodes.Add(ShowAllTree(0, oleDbConnection1,node)); //根节是以PID为0标志的 }
    } private TreeNode ShowAllTree(int ddd ,OleDbConnection  oleDbConnection1,Microsoft.Web.UI.WebControls.TreeNode node)
    {
    string sqlSelect =
              "SELECT id_,id_c,name_  FROM asp_tree  where id_='"+ddd+"'"  ;
     OleDbDataAdapter da = new  OleDbDataAdapter(sqlSelect, oleDbConnection1);
    DataTable dt=new DataTable();
    da.Fill(dt);
        
    for(int i=0;i<dt.Rows.Count;i++)           
    {
    TreeNode newNode=new TreeNode();
         DataRow dr=dt.Rows[i];
        
                    
    newNode.Text="<font color=#ffffff >"+ dr["name_"].ToString()+"</font>"; // newNode.Text=dr["name_"].ToString ();

    newNode.ImageUrl="Images/283.gif";
             
                
    node.Nodes.Add(newNode); int newID = Convert.ToInt32 (dt.Rows[i][1]);; ShowAllTree(newID,this.oleDbConnection1 ,newNode); //递归调用,将子结点ID当做下一当前结点ID }

    dt.Dispose();
    return node;

    }
    #region Web 窗体设计器生成的代码
    override protected void OnInit(EventArgs e)
    {
    //
    // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
    //
    InitializeComponent();
    base.OnInit(e);
    }

    /// <summary>
    /// 设计器支持所需的方法 - 不要使用代码编辑器修改
    /// 此方法的内容。
    /// </summary>
    private void InitializeComponent()
    {    
    this.TreeView1.SelectedIndexChange += new Microsoft.Web.UI.WebControls.SelectEventHandler(this.TreeView1_SelectedIndexChange);
    this.Load += new System.EventHandler(this.Page_Load); }
    #endregion
    private void TreeView1_SelectedIndexChange(object sender, Microsoft.Web.UI.WebControls.TreeViewSelectEventArgs e)
    {
    //this.TreeView1.AutoPostBack=true;
    string temp=(this.TreeView1.GetNodeFromIndex(this.TreeView1.SelectedNodeIndex)).Text ; if (System.Text.RegularExpressions.Regex.Replace(temp,@"[NUL -~ ]","")=="国内大事")
    {
            
    Response.Write("<script>parent.frames.item('mainFrame').location='WebForm3.aspx'</script>");
    //this.TreeView1.AutoPostBack=false;
    }
     


    System.Text.RegularExpressions.Regex.Replace(temp,@"[NUL -~ ]","");// 用正则表达式反回汉字
    } }
    }
      

  9.   

    #region 递归生成树
            /// <summary>
            /// 递归生成树
            /// </summary>
            /// <param name="Tnc">树节点</param>
            /// <param name="ParentID">父id</param>
            private void InitTree(TreeNodeCollection Tnc,string ParentID)
            {
                DataView dv=new DataView();
                TreeNode tmpNode;
                dv.Table=dSet.Tables[0];
                dv.RowFilter="ParentFolderID='" + ParentID + "'";
                foreach(DataRowView drv in dv)
                {
                    tmpNode=new TreeNode();
                    tmpNode.ID=drv["FolderID"].ToString().Trim();
                    tmpNode.Text=drv["FolderName"].ToString().Trim();
                    tmpNode.Target="right";
                    tmpNode.ImageUrl="../images/Folder.gif";
                    tmpNode.NavigateUrl="MailRecord.aspx?FolderID=" + tmpNode.ID.Trim();//传递节点的id(文件夹id)
                    tmpNode.Expanded=false;
                    Tnc.Add(tmpNode);
                    InitTree(tmpNode.Nodes,tmpNode.ID);
                }
            }
            #endregion
      

  10.   

    using System;
    using System.Drawing;
    using System.Collections;
    using System.ComponentModel;
    using System.Web;
    using System.Web.SessionState;
    using System.Web.UI;
    using System.Web.UI.WebControls;
    using System.Web.UI.HtmlControls;
    using Microsoft.Web.UI.WebControls;
    using System.Data;
    using System.Data.SqlClient;  namespace ElearningEng
    {
    public class NodeInfo
    {
    public string NodeID;
    ///...更多的属性定义
    public NodeInfo()
    {
    }
    } public class Tree
    {
    public static void GenerateTree(DataTable dt,string id,string parentid,string name,ref TreeView tv)
    {
    Hashtable ht = new Hashtable();
    int iCount = dt.Rows.Count;
    DataRow dr;
    NodeInfo nodeInfo;
    string [] keyArray = new string[iCount];//保存哈西表中的键值
    //创建所有树节点,保存在哈西表中
    for(int i=0;i<iCount;i++)
    {

    nodeInfo = new NodeInfo(); dr = dt.Rows[i];
    nodeInfo.NodeID = dr[id].ToString();
    keyArray[i] = nodeInfo.NodeID;
    TreeNode tn = new TreeNode (); //创建节点
    tn.ID=  dr[id].ToString();
    tn.Text= dr[name].ToString();

    // try
    // {
    // tn.NavigateUrl=dr["savepath"].ToString();
    // tn.Target="_blank";
    // tn.NodeData= dr[parentid].ToString();
    // }
    // catch
    // {

    tn.NodeData= dr[parentid].ToString();
    // } ht.Add(nodeInfo.NodeID,tn);

    }
    //建立节点关系,并将根节点加入到TreeView中
    for(int i=0;i<iCount;i++)
    {
    TreeNode tn = (TreeNode)ht[keyArray[i]];

    if(tn.NodeData  == null || tn.NodeData == "")  tv.Nodes.Add(tn);//这是根节点

    else //这是子节点
    {
    TreeNode tnd1 = (TreeNode)ht[tn.NodeData];//找父节点对象,注意:可能找不到父节点对象
    if(tnd1!=null)
    tnd1.Nodes.Add(tn);//找到父节点:把该节点加到父节点的子节点列表中
    else
    {
    //未找到父节点:或把它设为根节点,或抛弃,你看着办了
    tv.Nodes.Add(tn); //设为根节点
    }
    }
    }
    }
    public static void GeneratecheckTree(DataTable dt,string id,string parentid,string name,ref TreeView tv)
    {
    Hashtable ht = new Hashtable();
    int iCount = dt.Rows.Count;
    DataRow dr;
    NodeInfo nodeInfo;
    string [] keyArray = new string[iCount];//保存哈西表中的键值
    //创建所有树节点,保存在哈西表中
    for(int i=0;i<iCount;i++)
    {
    nodeInfo = new NodeInfo();
    dr = dt.Rows[i];
    nodeInfo.NodeID = dr[id].ToString();
    keyArray[i] = nodeInfo.NodeID;
    TreeNode tn = new TreeNode (); //创建节点
    tn.ID=  dr[id].ToString();
    tn.Text= dr[name].ToString();

    // try
    // {
    // tn.NavigateUrl=dr["savepath"].ToString();
    // tn.Target="_blank";
    // tn.NodeData= dr[parentid].ToString();
    // }
    // catch
    // {

    tn.NodeData= dr[parentid].ToString();
    // } ht.Add(nodeInfo.NodeID,tn);
    }
    //建立节点关系,并将根节点加入到TreeView中
    for(int i=0;i<iCount;i++)
    {
    TreeNode tn = (TreeNode)ht[keyArray[i]];
    tn.CheckBox=true; 

    if(tn.NodeData  == null || tn.NodeData == "")  tv.Nodes.Add(tn);//这是根节点

    else //这是子节点
    {
    TreeNode tnd1 = (TreeNode)ht[tn.NodeData];//找父节点对象,注意:可能找不到父节点对象
    if(tnd1!=null)
    tnd1.Nodes.Add(tn);//找到父节点:把该节点加到父节点的子节点列表中
    else
    {
    //未找到父节点:或把它设为根节点,或抛弃,你看着办了
    //tv.Nodes.Add(tn); //设为根节点
    }
    }
    }
    }
    //自
    public static void GenerateSubTree(DataTable dt,TreeNode tnCurrent,string id,string parentid,string name,ref TreeView tv)
    {
    Hashtable ht = new Hashtable();
    int iCount = dt.Rows.Count;
    DataRow dr;
    NodeInfo NodeInfo1;
    string [] keyArray = new string[iCount];//保存哈西表中的键值
    //创建所有树节点,保存在哈西表中
    for(int i=0;i<iCount;i++)
    {
    NodeInfo1 = new NodeInfo();
    dr = dt.Rows[i];
    NodeInfo1.NodeID = dr[id].ToString();
    keyArray[i] = NodeInfo1.NodeID;
    TreeNode tn = new TreeNode (); //创建节点
    tn.ID=  dr[id].ToString();
    tn.Text= dr[name].ToString();
    tn.NodeData= dr[parentid].ToString();
    ht.Add(NodeInfo1.NodeID,tn);
    }
    //建立节点关系,节点加入到TreeView中
    for(int i=0;i<iCount;i++)
    {
    TreeNode tn = (TreeNode)ht[keyArray[i]];
    tn.Type ="1";
    TreeNode tnd1 = (TreeNode)ht[tn.NodeData];//找父节点对象,注意:可能找不到父节点对象
    if(tnd1!=null)
    tnd1.Nodes.Add(tn);//找到父节点:把该节点加到父节点的子节点列表中
    else
    {
    tnCurrent.Nodes.Add(tn); 
    //在原结点添加结点
    }
    }
    }

    }

    }
      

  11.   

    http://community.csdn.net/Expert/topic/3618/3618047.xml?temp=9.544009E-02