现在的位置: 首页 > 综合 > 正文

[原]有TreeNode”并不包含“Nodes”的定义困扰的朋友看过来

2012年10月30日 ⁄ 综合 ⁄ 共 1376字 ⁄ 字号 评论关闭

  在用TreeView的时候可能会出现ystem.Web.UI.WebControls.TreeNode”并不包含“Nodes”的定义
  那是我们都用了类似下面的代码(我已经修正了错误)

  DataSet ds = null;
  
protected void Page_Load(object sender, EventArgs e)
  
{
    
if (!IsPostBack)
    
{
      
string sql = "select class_id,class_name,class_parentid from proclass";
      ds 
= KennyDataOp.GetDataSet(sql);
      AddTree(
0, (TreeNode)null"Product.aspx?cid=");
    }

  }

  
public void AddTree(int ParentID, TreeNode pNode,string urls)
  
{
    DataView dvTree 
= new DataView(ds.Tables[0]);
    
//过滤ParentID,得到当前的所有子节点
    dvTree.RowFilter = "[class_parentid] = " + ParentID;
    
foreach (DataRowView Row in dvTree)
    
{
      TreeNode Node 
= new TreeNode();
      
if (pNode == null)
      
{    //添加根节点
        Node.Text = Row["class_name"].ToString();
        Node.NavigateUrl 
= urls + Row["class_id"].ToString();
        
this.TreeView1.Nodes.Add(Node);
        Node.Expanded 
= true;
        AddTree(Int32.Parse(Row[
"class_id"].ToString()), Node, urls); //再次递归
      }

      
else
      
{  //添加当前节点的子节点
        Node.Text = Row["class_name"].ToString();
        Node.NavigateUrl 
= urls + Row["class_id"].ToString();
        pNode.ChildNodes.Add(Node);
        Node.Expanded 
= true;
        AddTree(Int32.Parse(Row[
"class_id"].ToString()), Node, urls); //再次递归
      }

    }

  }

倒数第三行代码是pNode.ChildNodes.Add(Node),Not pNode.Notes.Add(Node)

VS 2005 的TreeView控件有些更改, 只有TreeView下有Nodes集合, 而TreeNode下有ChildNodes集合

【上篇】
【下篇】

抱歉!评论已关闭.