treeview删除节点asp.net代码
treeview删除节点asp教程.net代码
private bool isin(treenodecollection tnodes,string s)
{
foreach (treenode td in tnodes)
{
if (td.name == s) return true;
if (td.nodes.count > 0)
if (isin(td.nodes, s)) return true;
}
return false;}
//实例方法
private void addtreenode()
{
//判断是否有重名
if(traversetreenode(string rename))
{
messagebox.show("该节点已经存在!", "提示");
}
else
{
//添加节点(不知道你想查入哪里)
}
}
private bool traversetreenode(string rename)
{
//添加节点和当前节点的子节点之间是否有重名
if (this.treeroom.selectednode.nodes.count > 0)
{
foreach (treenode node in this.treeroom.selectednode.nodes)
{
if (rename == node.text)
return true;
}
return false;
}
//添加节点和当前节点的同级节点之间是否有重名(前提当前节点的父节点存在)
else if (this.treeroom.selectednode.parent.nodes.count > 0)
{
foreach (treenode node in this.treeroom.selectednode.parent.nodes)
{
if (rename.compareto(node.text) == 0)
return true;
}
return false;
}
}
问题2:删除treeview节点时如果存在子节点,则不允许删除
private void deltreenode()
{
//判断是否有子节点
if(this.treeroom.selectednode.nodes.count>0)
{
messagebox.show("该节点包含子节点!", "提示");
}
else
{
//移除当前节点
this.treeroom.selectednode.remove();
}
}
补充:
问题1:不知道你添加节点重名判断是否在整棵树里面,如果那样需要遍历整棵树。
private bool traversetreenode(string rename)
{
bool flag = false;
foreach (treenode node in treeroom.nodes.nodes)
{
if(node.nodes.count>0)
{
flag = traversetreenode(rename);
if(flag)
return true;
}
else
{
if (rename.equals(node.text))
return true;
}
}
return false;
}//
送一个找node的函数
/// <summary>
/// 遍历树形控件,找到text为code的节点。采用递归算法
/// </summary>
/// <param name="nodes">要查找的节点集合</param>
/// <param name="parentcode">匹配条件,为节点的text</param>
/// <returns></returns>
private treenode findnodebycode(treenodecollection nodes, string code)
{if (nodes.count == 0)
return null;foreach (treenode node in nodes)
{
//判断此节点是否是目标
if (node.text.tostring() == code.trim())
return node;//此节点是否有子节点
treenode node_2;
if (node.childnodes.count != 0)
{
//有子节点,则开始递归调用
node_2 = findnodebycode(node.childnodes, code);
}
else
{
//无子节点
node_2 = null;
}
//如果递归找到了目标,则返回目标
if (node_2 != null)
return node_2;//此节点及节点的子节点(包括所有的子节点)都不包含目标,进行下一个节点的循环
}//遍历了所有节点,没找到目标,只好返回null
return null;}
}
补充:asp.net教程,.Net开发