绑定数据的树什么也不显示!静态的树可以正常显示!用DataGrid1可以正常显示内容!
DataGrid1.DataSource=categoryView;
DataGrid1.DataBind(); 
我该怎么绑定treeview显示呢?请高人指点!

解决方案 »

  1.   

    #region 动态构建TreeView
    /// <summary>
    /// 构造树
    /// </summary>
    /// <param name="tableName">数据表名</param>
    /// <param name="keyField">主键字段名</param>
    /// <param name="parentField">父编号字段名</param>
    /// <param name="showField">显示字段名</param>
    /// <param name="rootName">根节点名</param>
    /// <param name="tv">待构造的树</param>
    protected void BindTree(string tableName,string keyField,string parentField,string showField,string rootName,ref TreeView tv)
    {
    tv.Nodes.Clear();
    DataTable dt = new DataTable();
    string mySql = "select "+keyField+","+parentField+","+showField+" from "+tableName;
    using (KY_BASE.DataAccess myDA = new KY_BASE.DataAccess())
    {
    dt = myDA.ExeTable(mySql);
    }
    TreeNode root = new TreeNode();
    root.ID = "0";//
    root.Text = rootName;
    tv.Nodes.Add(root);
    DataRow[] rows = dt.Select(parentField+" = '0'");
    for(int i=0;i<rows.Length;i++)
    {
    BindLowerTree(dt,keyField,rows[i][keyField].ToString(),parentField,showField,rows[i][showField].ToString(),root,ref tv);
    }
    } protected void BindLowerTree(DataTable dt,string keyField,string keyValue,string parentField,string showField,string showValue,TreeNode myNode,ref TreeView tv)
    {
    TreeNode node = new TreeNode();
    node.ID = keyValue;
    node.Text = showValue;
    myNode.Nodes.Add(node);
    DataRow[] rows = dt.Select(parentField+"='"+keyValue+"'");
    for (int i=0;i<rows.Length;i++)
    {
    BindLowerTree(dt,keyField,rows[i][keyField].ToString(),parentField,showField,rows[i][showField].ToString(),node,ref tv);
    }
    } /// <summary>
    /// 遍历节点
    /// </summary>
    /// <param name="nodeID"></param>
    /// <param name="tnc"></param>
    /// <param name="tv"></param>
    protected void OperNodeByID(string nodeID,OperNode oper,TreeNodeCollection tnc,ref TreeView tv)
    {
    foreach(TreeNode node in tnc)
    {
    if (node.ID ==nodeID)
    {
    oper(node);
    break;
    }
    if(node.Nodes.Count!=0)
    OperNodeByID(nodeID,oper,node.Nodes,ref tv);
    }
    } #endregion
      

  2.   

    OperNode 是个代理:
    public delegate void OperNode(TreeNode node);
      

  3.   

    http://www.gotdotnet.com/team/webcontrols/treeview/tree2.aspxhttp://www.gotdotnet.com/team/webcontrols/treeview/tree.aspx
    还有这个
    http://www.freevbcode.com/ShowCode.asp?ID=652HOWTO: Populate a Treeview Control with an XML Filehttp://support.microsoft.com/default.aspx?scid=kb;EN-US;q244954
    http://msdn.microsoft.com/workshop/webcontrols/behaviors/library/treeview/treeview.asphttp://dev.csdn.net/article/28/28499.shtm
    http://dev.csdn.net/article/28/28502.shtmhttp://aspnet.4guysfromrolla.com/articles/051403-1.aspx