treeview怎么使用?解释清楚立刻给分

解决方案 »

  1.   

    详细查看
    http://blog.csdn.net/kingwkb/archive/2006/01/25/588389.aspx
      

  2.   

    private void BuildTree()
    {
    int i = 0;
    int j = 0;
    Guid ParentID = Guid.Empty;

    TreeNode oTNode = new TreeNode();
    oTNode.Type = "AddrTypes";
    oTNode.Text = SetLanguage();

    Hashtable tblNodes = new Hashtable(); ///build a list of Nodes, Key=ClassID, Value=Index
    TreeNode oNode;
    string[] orderBy = {"VendorCode", "VendorName"};
    e2PrintDALC.VendorTypeCollection oVendorTypes = e2PrintDALC.VendorType.LoadCollection(orderBy, true);

    ///loop throught the Class table to build the Nodes and the List
    TreeNode[] oNodes = new TreeNode[oVendorTypes.Count]; ///build an array of Nodes to hold all AddrTypes
    foreach (e2PrintDALC.VendorType oVendorType in oVendorTypes)
    {
    oNode = new TreeNode();
    oNode.Type = oVendorType.VendorTypeId.ToString();
    oNode.Text = oVendorType.VendorCode;
    oNode.NavigateUrl = "VendorType_PaneCenter.aspx?act=show&id=" + oVendorType.VendorTypeId.ToString();
    oNode.Target = "fraPaneCenter";
    oNodes[i] = oNode;
    tblNodes.Add(oVendorType.VendorTypeId.ToString(), i);
    ++i;
    }

    ///loop throught the Class table again to put the Nodes into proper hirearchy position
    foreach (e2PrintDALC.VendorType oVendorType in oVendorTypes)
    {
    i = (int) tblNodes[oVendorType.VendorTypeId.ToString()];
    ParentID = oVendorType.ParentVendorType;

    if (tblNodes[ParentID.ToString()] == null)
    {
    j = 0;
    }
    else
    {
    j = (int) tblNodes[ParentID.ToString()];
    } if (ParentID != Guid.Empty)
    {
    oNodes[j].Nodes.Add(oNodes[i]);
    }
    }

    ///loop throught the Class table again to put the Top Nodes into TreeView
    foreach (e2PrintDALC.VendorType oVendorType in oVendorTypes)
    {
    i = (int) tblNodes[oVendorType.VendorTypeId.ToString()];
    ParentID = oVendorType.ParentVendorType;

    if (ParentID == Guid.Empty)
    {
    if (oNodes[i] != null) oTNode.Nodes.Add(oNodes[i]);
    }
    }
    tvwTemplateTree.Nodes.Add(oTNode);
    }
      

  3.   

    他是按照一个一个的节点的添加,然后可以相应的选择不同的节点进行不同的操作,就像csdn一样,左侧是一个树,右侧是一个grid页,根据节点的data不同,进行不同的操作
      

  4.   

    到这里看看吧,当初我就是从这里学会的:)
    http://dev.csdn.net/article/73/73452.shtm
      

  5.   

    再推荐一个:http://www.drlzf.com/DogNet/ASP/200411/89.html
      

  6.   

    pageload中:
    TreeView1.Nodes.Clear();
    int li_len;
    tree_str[] tvparent;  //调用struct tree_str
    tvparent=new tree_str[1000];
    li_len=0; string s_sql_1="select  qymc  from cq_zycqdjb  where  bsm='"+bsm.Text.ToString()+"'";
    OracleCommand myCommand1=new OracleCommand(s_sql_1,myConnection);
    OracleDataReader objDataReader1=myCommand1.ExecuteReader();
    lal_1=new ArrayList();
    while (objDataReader1.Read())
    {
    li_len++;
    tvparent[li_len - 1].frame=1;   //frame 结构变量
    tvparent[li_len - 1].tv=new TreeNode();
    tvparent[li_len - 1].tv.Text=objDataReader1["qymc"].ToString()+"[]";
    // lal_1.Add(objDataReader1["qymc"].ToString());
    get_child_1(tvparent[li_len - 1]);
    TreeView1.Nodes.Add(tvparent[li_len - 1].tv);   //tv  结构变量
    }
    ViewState["treeview1"]=lal_1;   //把TreeView1的值放在ArrayList lal_1里
    DataSet myData1=new DataSet();
    myCommand1.Dispose();
    objDataReader1.Close();
    然后再做三个函数
    1.
    private void GetAllNodeText(TreeNodeCollection tnc)  //递归算法
    {
    foreach(TreeNode tv in tnc)
    {

    if(tv.Nodes.Count!=0)
    GetAllNodeText(tv.Nodes);
    // Response.Write(tv.NodeData.ToString());
    // Response.Write(tv.Nodes.ToString());
    }

    }
    2.
    public void get_child(tree_str tv_now)  //逐层找child
    {
    TreeNode tn=tv_now.tv;
                string ls_text=tn.Text.ToString().Substring(0,tn.Text.LastIndexOf("["));
    //   string ls_text=tn.Text.ToString();
    // Response.Write(ls_text); string ls_parent="";
    TreeNode tn_parent=(TreeNode)tn.Parent;
    if(tn_parent!=null) ls_parent=tn_parent.Text.Substring(0,tn_parent.Text.LastIndexOf("["));
    // if(tn_parent!=null) ls_parent=tn_parent.Text;
    string ls_sql_1=""; tree_str tv_child=new tree_str();
       ls_sql_1="select  distinct czrmc,tzje  from cq_zyczrb where  bsm=(select bsm  from  cq_zycqdjb where qymc='"+ls_text+"')";  //在where语句中使用select
    OracleConnection myConnection=new OracleConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
    myConnection.Open();
    OracleCommand myCommand1=new OracleCommand(ls_sql_1,myConnection);
    OracleDataReader objDataReader1=myCommand1.ExecuteReader();
    while (objDataReader1.Read())
    {
                    string ls_ctext=objDataReader1[0].ToString();
    // Response.Write(ls_ctext);
    string ls_sql_1a="";
    ls_sql_1a="select tzje  from cq_zyczrb  where   czrmc='"+ls_ctext+"' and  bsm=(select bsm  from  cq_zycqdjb where qymc='"+ls_text+"') ";
    OracleConnection myConnection1=new OracleConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
    myConnection1.Open();
    OracleCommand myCommand1a=new OracleCommand(ls_sql_1a,myConnection1);
    OracleDataReader objDataReader1a=myCommand1a.ExecuteReader();
    while(objDataReader1a.Read())
    {
    string tzje=objDataReader1a[0].ToString();
    // Response.Write(tzje);
    string ls_sql_1b="";
    ls_sql_1b="select gqbl  from cq_zyczrb  where   czrmc='"+ls_ctext+"' and  bsm=(select bsm  from  cq_zycqdjb where qymc='"+ls_text+"') ";
    OracleConnection myConnection2=new OracleConnection(ConfigurationSettings.AppSettings["ConnectionString"]);
    myConnection2.Open();
    OracleCommand myCommand1b=new OracleCommand(ls_sql_1b,myConnection2);
    OracleDataReader objDataReader1b=myCommand1b.ExecuteReader();
    while(objDataReader1b.Read())
    {
    string  gqbl=objDataReader1b[0].ToString();
    // Response.Write(gqbl);
    if(ls_ctext==ls_parent) continue;
    tv_child.frame=tv_now.frame+1;
    tv_child.tv=new TreeNode();
    string ls_ctext_1=ls_ctext+"[投资金额:"+tzje+"股权比例:"+gqbl+"%"+"]";                        ls_ctext=ls_ctext_1.Substring(0,ls_ctext_1.LastIndexOf("["));
    // Response.Write(ls_ctext);
    tv_child.tv.Text=ls_ctext_1;
    tv_now.tv.Nodes.Add(tv_child.tv);
    lal_1.Add(ls_ctext);
    get_child_1(tv_child);     //递归
    // Response.Write("tv_child.tv.Text.Substring(0,ls_ctext_1.LastIndexOf("[")");
       
    }
    myCommand1b.Dispose();
    objDataReader1b.Dispose();
    myConnection2.Close();
    }
    myCommand1a.Dispose();
    objDataReader1a.Dispose();
    myConnection1.Close();
    }
    myCommand1.Dispose();
    objDataReader1.Close();
    myConnection.Close();
    }
    3.
    private void expand(TreeNode tv)  //展开所有的父节点
    {
    if(tv.Nodes.Count>0)
    {
    tv.Expanded=true;
    foreach(TreeNode tempNode in tv.Nodes)
    {
    expand(tempNode);
    }
    }
    }
      

  7.   

    http://time-is-life.cnblogs.com/articles/329691.html