请问如何用C#构建一个树型啊?要那种可以任意增加和删除节点的,后台用数据库存储树型的节点信息.请各位大侠多多指示,在下多谢了先!!!
解决方案 »
- C#邮件插件问题
- C#怎么生成 第三方 控件
- 哪个对象速度最快?
- 状态栏显示字数问题
- datagridview的问题
- 在 VISUAL C# 中从键盘读取一行以空格或“,”,“.”分隔的字符串,将其中的数字字符串转化成整数然后输出,将非数字字符串倒排输出
- 我在form1中放了一个webbrowser控件,现在可以浏览网页,但是我在网页中的某个连接中,点右键,选择“在新窗口中打开”,
- 如何获得被禁用网卡的物理地址?
- 关于自定义控件的属性问题,困挠很久了,恳请高手帮忙解决!
- 为什么我在装.net的时候,在装到第三张光盘的时候,会重新启动,然后,就不可以了`~从新启动后,.net没有装好,什么SP2都需要重新安装呢~
- 用__doPostBack('Button1','');来执行BUTTON1的事件为什么不执行
- c#winform中怎么让datagrid绑定数据库
要的话发邮件,[email protected]
数据库设计成字段:ID、UpperID、Name、……
第一层根节点的UpperID为0,初始化根节点后
根据upperid来得到每一个根节点的子节点
递归加载子节点就ok了public string RootCaption="部门";
public int RootKey=0;
public string SelNodeCaption="";
public int SelNodeID=0; private DataTable dtDep=new DataTable(); private void InitTree()
{
this.Nodes.Clear(); TreeNode mNode=new TreeNode();
mNode.Text=RootCaption;
mNode.Tag=RootKey;
this.Nodes.Add(mNode); DBManager.Query("vDepartment",out this.dtDep);
if(this.dtDep!=null ) FullTreeList(mNode,RootKey); mNode.Expand(); } private void FullTreeList(TreeNode ParentNode,int ParentKey)
{
int iDepID=0;
int iParentID=0;
foreach(DataRow dr in this.dtDep.Rows)
{
iDepID=int.Parse(dr["ID"].ToString ());
iParentID=int.Parse(dr["UpperID"].ToString()); if(iParentID ==ParentKey)
{
TreeNode mNode=new TreeNode();
mNode.Text=dr["DepartmentName"].ToString() ;
mNode.Tag=iDepID;
mNode.Expand();
ParentNode.Nodes.Add(mNode);
if(this.SelNodeID == iDepID)
{
mNode.Checked = true;
this.SelectedNode=mNode;
}
//find his children
FullTreeList(mNode,(int)mNode.Tag);
} }
}