| 网站首页 | 业界新闻 | 小组 | 威客 | 人才 | 下载频道 | 博客 | 代码贴 | 在线编程 | 编程论坛
欢迎加入我们,一同切磋技术
用户名:   
 
密 码:  
共有 1323 人关注过本帖
标题:求教:这个节点类该怎样写
只看楼主 加入收藏
loveqq2004
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2006-8-28
收藏
 问题点数:0 回复次数:18 
求教:这个节点类该怎样写

做一个节点类Node,有属性Name,可以包含有子节点chidren,用一个ArrayList存储子节点,可以作节点的添加删除操作。

初学c#,让大家见笑了。麻烦高手指点!


搜索更多相关主题的帖子: 节点 
2006-08-28 18:50
mylover624
Rank: 1
来 自:乖乖的心中
等 级:新手上路
帖 子:868
专家分:0
注 册:2006-7-6
收藏
得分:0 
如果你这些节点名是从数据库里面提取的话,就直接对数据库操作就行了。

一个天才顶不上十个笨蛋!
书山有路勤为径,学海无涯友相伴。
我的E-mail:mylover624@.cn
2006-08-28 20:09
loveqq2004
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2006-8-28
收藏
得分:0 
回复:(mylover624)如果你这些节点名是从数据库里面...

是这样的, 先做一个节点类,然后自定义一个treeview控件,当把RootNode传给treeview,treeview负责把RootNode和他的Children装载进来,同时支持对Node进行添加删除操作时的响应。


class TNode
{
string name;
public string Name
{
get{return name;}
set{name=value;}
}
private ArrayList _Children; // 存储子节点
int AddChild(TNode Node){};
void DelChild(TNode Node){};
}

自己写了个这个,但是方法体应该怎样实现,自己感觉没有头绪,不知去调用哪些类的 方法去实现。
还应该添加那些方法或变量去完成这个类。

2006-08-29 08:42
mylover624
Rank: 1
来 自:乖乖的心中
等 级:新手上路
帖 子:868
专家分:0
注 册:2006-7-6
收藏
得分:0 
[CODE]

private void MyTreeView(DataTable table, string ParentID, Microsoft.Web.UI.WebControls.TreeNode PNode)
{
DataRow[] dr=table.Select("ParentID=" + ParentID);
try
{
if (dr.Length > 0)
{
foreach (DataRow d in dr)
{
Microsoft.Web.UI.WebControls.TreeNode TNode = new Microsoft.Web.UI.WebControls.TreeNode();
TNode.Text = d["powerNAME"].ToString();
if (PNode == null)
{
this.TreeView1.Nodes.Add(TNode);

}
else
{
PNode.Nodes.Add(TNode);
}
TNode.NavigateUrl = "";
TNode.ImageUrl = "img/folderclose.gif";
TNode.ExpandedImageUrl = "img/folderopen.gif";
TNode.NodeData=d["powerid"].ToString();
TNode.Expanded = false;
MyTreeView(table, d["powerID"].ToString(), TNode);
}
}
else
{
return;
}
}
catch (Exception exp)
{
Response.Write(exp.Message);
}

}

[/CODE]
你看一下这个对你有没有点用啊.

一个天才顶不上十个笨蛋!
书山有路勤为径,学海无涯友相伴。
我的E-mail:mylover624@.cn
2006-08-29 09:20
loveqq2004
Rank: 1
等 级:新手上路
帖 子:76
专家分:0
注 册:2006-8-28
收藏
得分:0 
回复:(mylover624)[CODE]private void MyTreeVie...

呵呵,谢谢赐教!
不过我如果 想把定义节点类的代码做成一个单独的类,那应该怎样写。

[此贴子已经被作者于2006-8-29 10:06:51编辑过]

2006-08-29 09:46
mylover624
Rank: 1
来 自:乖乖的心中
等 级:新手上路
帖 子:868
专家分:0
注 册:2006-7-6
收藏
得分:0 
[CODE] string MenuName = txt_menun.Text.Trim(); //添加节点的文本框
int ParentID =0;
// 在dropdownlist里没选其他值时 ParentID =0(添加主菜单)
if(list_parentname.SelectedItem.Value !="---主菜单---") //判断添加到哪个节点下面
{
ParentID = Convert.ToInt32(list_parentname.SelectedItem.Value);
}
string SqlInto = "insert into [power] (powername,parentid) values('"+MenuName+"',"+ ParentID+")";
MyExec(SqlInto); //这是一个执行SQL语句的方法.自己写吧
DropDownListBind(); //重新绑定节点
txt_menun.Text = "";[/CODE]

一个天才顶不上十个笨蛋!
书山有路勤为径,学海无涯友相伴。
我的E-mail:mylover624@.cn
2006-08-29 10:16
xupeng
Rank: 1
等 级:新手上路
帖 子:4049
专家分:0
注 册:2006-2-12
收藏
得分:0 

[CODE]
class MyNode
{
public string name;
private ArrayList al;
public MyNode(string name)
{
this.name = name;
this.al = new ArrayList();
}
public void Add(string name)
{
MyNode mynode = new MyNode(name);
this.al.Add(mynode);
}
public void Remove(int i)
{
this.al.Remove(int i)
}
public void Remove(string name)
{
foreach(int i = 0;i<al.Count;i++)
{
if(this.al[i].name == name)
{
this.al.Remove(i);
}
}
}
}
[/CODE]
仅供参考


反清复明 http://xupeng.
2006-08-29 10:23
xupeng
Rank: 1
等 级:新手上路
帖 子:4049
专家分:0
注 册:2006-2-12
收藏
得分:0 
索引器就由楼主来自己添加啦

反清复明 http://xupeng.
2006-08-29 10:25
chenjin145
Rank: 1
等 级:禁止访问
帖 子:3922
专家分:0
注 册:2006-7-12
收藏
得分:0 
不覺得它本身的
treenode
treenodecollection
比上面寫的強大多了?

[url=javascript:alert(1);] [div]fdgfdgfdg\" on\"[/div] [/url]
2006-08-29 10:29
noshow
Rank: 2
等 级:新手上路
威 望:4
帖 子:1127
专家分:0
注 册:2006-4-21
收藏
得分:0 
学习

此号自封于2006年11月30日
2006-08-29 10:30
快速回复:求教:这个节点类该怎样写
数据加载中...
 
   



关于我们 | 广告合作 | 编程中国 | 清除Cookies | TOP | 手机版

编程中国 版权所有,并保留所有权利。
Powered by Discuz, Processed in 0.052287 second(s), 7 queries.
Copyright©2004-2024, BCCN.NET, All Rights Reserved