关于TreeView 无限添加子节点问题? 在线等。。。。。 我想弄一个无限添加子节点的数控件、对应的记录动态插入数据库中、如果我删除根节点、要求其下面的子节点全部也删除 同样数据库的记录也删除?说简单点就是动态添加、节点、删除节点(删除单个子节点、删除根节点)、同时数据库也响应同样操作(删除、添加)? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 参考://递归添加树的节点 public void AddTree(string ParentID, TreeNode pNode) { DataSet ds = (DataSet)this.ViewState["ds"]; DataView dvTree = new DataView(ds.Tables[0]); //过滤ParentID,得到当前的所有子节点 dvTree.RowFilter = "[PARENTID] = " + ParentID; DataView dvPower=new DataView(); if (getuserpower() != null) dvPower = new DataView(getuserpower(), "", "PowerId", DataViewRowState.CurrentRows); else dvPower = null; foreach (DataRowView Row in dvTree) { TreeNode Node = new TreeNode(); if (pNode == null) { //添加根节点 Node.Text = Row["NODENAME"].ToString(); Node.Value = Row["NODEID"].ToString(); //Node.NavigateUrl = Row["linkUrL"].ToString(); //Node.ToolTip = Row["ADDRESS"].ToString(); TreeView1.Nodes.Add(Node); Node.Expanded = true; AddTree(Row["NODEID"].ToString(), Node); //再次递归 } else { //̀添加当前节点的子节点 Node.Text = Row["NODENAME"].ToString(); Node.Value = Row["NODEID"].ToString(); pNode.ChildNodes.Add(Node); Node.Expanded = true; AddTree(Row["NODEID"].ToString(), Node); //再次递归 } } }调用: AddTree("0", (TreeNode)null);表设计:CREATE TABLE [dbo].[Tree] ( [ID] [int] IDENTITY (1, 1) NOT NULL , [ParentId] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL , [NodeID] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL , [NodeName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL , ) 链接服务器提示登陆失败 求C#的MSDN帮助文档 可以在TableLayoutPanel控件的指定行与列添加按钮吗? C#动态菜单合并 windows服务问题 .NET的事件处理为什么那么复杂呢? 最后一个问题了,大虾们来捧场啊!先谢! zglxh3(noproblem),接分之六 exchange中如何修改用户的邮箱地址 关于异常处理问题!!如果抽象然后实现重用…… VS 2005(.net 2.0)的编译 csc.exe问题 还是这段代码~~!!
//递归添加树的节点
public void AddTree(string ParentID, TreeNode pNode)
{
DataSet ds = (DataSet)this.ViewState["ds"]; DataView dvTree = new DataView(ds.Tables[0]); //过滤ParentID,得到当前的所有子节点
dvTree.RowFilter = "[PARENTID] = " + ParentID;
DataView dvPower=new DataView();
if (getuserpower() != null)
dvPower = new DataView(getuserpower(), "", "PowerId", DataViewRowState.CurrentRows);
else
dvPower = null; foreach (DataRowView Row in dvTree)
{
TreeNode Node = new TreeNode();
if (pNode == null)
{ //添加根节点
Node.Text = Row["NODENAME"].ToString();
Node.Value = Row["NODEID"].ToString();
//Node.NavigateUrl = Row["linkUrL"].ToString();
//Node.ToolTip = Row["ADDRESS"].ToString();
TreeView1.Nodes.Add(Node);
Node.Expanded = true;
AddTree(Row["NODEID"].ToString(), Node); //再次递归
}
else
{ //̀添加当前节点的子节点
Node.Text = Row["NODENAME"].ToString();
Node.Value = Row["NODEID"].ToString();
pNode.ChildNodes.Add(Node);
Node.Expanded = true;
AddTree(Row["NODEID"].ToString(), Node); //再次递归
} }
}调用: AddTree("0", (TreeNode)null);
表设计:
CREATE TABLE [dbo].[Tree] (
[ID] [int] IDENTITY (1, 1) NOT NULL ,
[ParentId] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[NodeID] [varchar] (20) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[NodeName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
)