我是在WEB中做的,treeview1出错,过不去,不知是什么原因,一早晨不出啊!
代码:
protected void Page_Load(object sender, EventArgs e)
{
} protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
}
DataSet ds = new DataSet();
private void Form1_Load(object sender, System.EventArgs e)
{
SqlConnection con = DBcon.createConnection();
try
{
con.Open();
SqlCommand sqlCmd = new SqlCommand("select * from tbtree",con);
SqlDataAdapter adp = new SqlDataAdapter(sqlCmd);
adp.Fill(ds);
}
catch (Exception ex)
{
throw (ex);
}
finally
{
con.Close();
}
//调用递归函数,完成树形结构的生成
AddTree(0, (TreeNode)null);
} // 递归添加树的节点
public void AddTree(int ParentID,TreeNode pNode)
{
DataView dvTree = new DataView(ds.Tables[0]);
//过滤ParentID,得到当前的所有子节点
dvTree.RowFilter = "[PARENTID] = " + ParentID;
foreach(DataRowView Row in dvTree)
{
if(pNode == null)
{ //'̀添加根节点
TreeNode Node = TreeView1.Nodes.Add(Row["ConText"].ToString());
AddTree(Int32.Parse(Row["ID"].ToString()),Node); //再次递归
}
else
{ //添加当前节点的子节点
TreeNode Node = pNode.Nodes.Add(Row["ConText"].ToString());
AddTree(Int32.Parse(Row["ID"].ToString()),Node); //再次递归
}
}
} }帮助看看啊,,
代码:
protected void Page_Load(object sender, EventArgs e)
{
} protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
{
}
DataSet ds = new DataSet();
private void Form1_Load(object sender, System.EventArgs e)
{
SqlConnection con = DBcon.createConnection();
try
{
con.Open();
SqlCommand sqlCmd = new SqlCommand("select * from tbtree",con);
SqlDataAdapter adp = new SqlDataAdapter(sqlCmd);
adp.Fill(ds);
}
catch (Exception ex)
{
throw (ex);
}
finally
{
con.Close();
}
//调用递归函数,完成树形结构的生成
AddTree(0, (TreeNode)null);
} // 递归添加树的节点
public void AddTree(int ParentID,TreeNode pNode)
{
DataView dvTree = new DataView(ds.Tables[0]);
//过滤ParentID,得到当前的所有子节点
dvTree.RowFilter = "[PARENTID] = " + ParentID;
foreach(DataRowView Row in dvTree)
{
if(pNode == null)
{ //'̀添加根节点
TreeNode Node = TreeView1.Nodes.Add(Row["ConText"].ToString());
AddTree(Int32.Parse(Row["ID"].ToString()),Node); //再次递归
}
else
{ //添加当前节点的子节点
TreeNode Node = pNode.Nodes.Add(Row["ConText"].ToString());
AddTree(Int32.Parse(Row["ID"].ToString()),Node); //再次递归
}
}
} }帮助看看啊,,
然后以下代码全部改为:
DataView dvTree;
public void AddTree()
{
dvTree = new DataView(ds.Tables[0]);
dvTree.RowFilter = "[PARENTID] = 0";
foreach (DataRowView Row in dvTree)
{
TreeNode Node=new TreeNode();
Node.Text = Row["ConText"].ToString();
Node.Tag = int.Parse(Row["ID"].ToString());
TreeView1.Nodes.Add(Node);
Items(int.Parse(Node.Tag.ToString()), ref Node);
}
}
private void Items(int id, ref TreeNode tn)
{
dvTree.RowFilter = "[PARENTID] = " + id;
foreach (DataRowView Row in dvTree)
{
TreeNode n = new TreeNode();
n.Text = Row["ConText"].ToString();
n.Tag = int.Parse(Row["ID"].ToString());
tn.Nodes.Add(n);
Items(int.Parse(n.Tag.ToString()), ref n);
}
}
应该怎么做啊?
比如说Value值 比如说Target
然后以下代码全部改为:
DataView dvTree;
public void AddTree()
{
dvTree = new DataView(ds.Tables[0]);
dvTree.RowFilter = "[PARENTID] = 0";
foreach (DataRowView Row in dvTree)
{
TreeNode Node=new TreeNode();
Node.Text = Row["ConText"].ToString();
TreeView1.Nodes.Add(Node);
Items(nt.Parse(Row["ID"].ToString(),ref Node);
}
}
private void Items(int id, ref TreeNode tn)
{
dvTree.RowFilter = "[PARENTID] = " + id;
foreach (DataRowView Row in dvTree)
{
TreeNode n = new TreeNode();
n.Text = Row["ConText"].ToString();
tn.Nodes.Add(n);
Items(int.Parse(Row["ID"].ToString()),ref n);
}
}
上面这句少了字母 i
你把问题再说清楚点。
会出什么异常啊?
,请再看看..感谢
这意思啊。
那你就把全文中出现 这种问题的地方的中的 TreeNode 都换成System.Web.UI.WebControls.TreeNode
再试
你用的是什么 在出错的地方就改成什么啊。。
真是奇怪,错误又更多了,看看..
我的错啊。。你把方法 Items 随便换个名字啊
然后以下代码全部改为:
DataView dvTree;
public void AddTree()
{
dvTree = new DataView(ds.Tables[0]);
dvTree.RowFilter = "[PARENTID] = 0";
foreach (DataRowView Row in dvTree)
{
System.Web.UI.WebControls.TreeNode Node=new System.Web.UI.WebControls.TreeNode();
Node.Text = Row["ConText"].ToString();
TreeView1.Nodes.Add(Node);
ItemsAA(int.Parse(Row["ID"].ToString(),ref Node);
}
}
private void ItemsAA(int id, ref System.Web.UI.WebControls.TreeNode tn)
{
dvTree.RowFilter = "[PARENTID] = " + id;
foreach (DataRowView Row in dvTree)
{
System.Web.UI.WebControls.TreeNode n = new System.Web.UI.WebControls.TreeNode ();
n.Text = Row["ConText"].ToString();
tn.Nodes.Add(n);
ItemsAA(int.Parse(Row["ID"].ToString()),ref n);
}
}
都好了,只有这个问题了...麻烦了,