在用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); //再次递归
}
}
}
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集合