如何在c# treeview控件动态绑定数据库,实现2级目录,添加父节点并在父节点下添加子节点

如何在c#treeview控件动态绑定数据库,实现2级目录,添加父节点并在父节点下添加子节点。数据库是sqlite,软件是visualstudio... 如何在c# treeview控件动态绑定数据库,实现2级目录,添加父节点并在父节点下添加子节点 。数据库是sqlite,软件是visual studio 展开
 我来答
captain201110
2015-06-11 · TA获得超过152个赞
知道小有建树答主
回答量:237
采纳率:100%
帮助的人:117万
展开全部
从你的数据表中读出父子节点表到DataTable中,然后按上下级关系一个个添加就可以。添加父子节点只需另写一个功能很数据表中加就行,比较简单。
给你一个示例,大概是这样子。
private void ShowTree()
{
this.SystemTree.Nodes.Clear();
TreeNode rootNode = new TreeNode();
rootNode.Text = "XXXXXXXX";
rootNode.Value = "";
int status = 0;
rootNode.NavigateUrl = "javascript:SelectNode('root',' '," + Convert.ToString(nodeid++) + "," + status + ")";
this.SystemTree.Nodes.Add(rootNode);
SubsystemManagement subSystem = new SubsystemManagement();
DataTable dt = new DataTable();
dt = subSystem.GetAllsubsystemInfo(); //显示子系统名称
foreach (DataRow dr in dt.Rows)
{
TreeNode subNode = new TreeNode();
string subSysName = dr["CFunName"].ToString();
subNode.Text = subSysName;
string subSysId = dr["CFunctionID"].ToString();
subNode.Value = subSysId;
status = 1;
subNode.NavigateUrl = "javascript:SelectNode('subsys','" + subSysId + "'," + Convert.ToString((nodeid++)) + "," + status + ")";
rootNode.ChildNodes.Add(subNode);
rootNode.Expanded = true;
DataTable sdt = new DataTable();
sdt = subSystem.GetModulesBySubSysId(subSysId); //显示模块名称
foreach (DataRow sdr in sdt.Rows)
{
TreeNode sNode = new TreeNode();
string moduleName = sdr["CFunName"].ToString();
sNode.Text = moduleName;
string moduleId = sdr["CFunctionId"].ToString();
sNode.Value = moduleId;
status = 1;
sNode.NavigateUrl = "javascript:SelectNode('module','" + moduleId + "'," + Convert.ToString((nodeid++)) + "," + status + ")";
subNode.ChildNodes.Add(sNode);
subNode.Expanded = true;
DataTable fdt = new DataTable();
fdt = subSystem.GetFunctionsByModuleId(moduleId); //显示功能名称
foreach (DataRow fdr in fdt.Rows)
{
TreeNode fNode = new TreeNode();
fNode.Text = fdr["CFunName"].ToString();
fNode.Value = fdr["CFunctionId"].ToString();
status = 2;
fNode.NavigateUrl = "javascript:SelectNode('function','" + fdr["CFunctionId"].ToString() + "'," + Convert.ToString((nodeid++)) + "," + status + ")";
sNode.ChildNodes.Add(fNode);
sNode.Expanded = false;
}
}
}
}
printf59277
2015-06-11 · TA获得超过1080个赞
知道大有可为答主
回答量:1812
采纳率:33%
帮助的人:1267万
展开全部
你把你的数据结构发出来啊,不过这种绑定,一般要写循环,或者递归来实现。你这里只有两级的话,写个简单的循环也就可以了。如果你获取的数据结构是 节点编号 节点名称 节点父级编号 这样的方式 ,你可以在循环里面 判断是否有父级节点,如果没有的,就是根节点。绑定完了以后 ,再写一个循环 ,找父级节点对应的根节点并绑定就行了。
追问
你扣扣多少
已赞过 已踩过<
你对这个回答的评价是?
评论 收起
推荐律师服务: 若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询

为你推荐:

下载百度知道APP,抢鲜体验
使用百度知道APP,立即抢鲜体验。你的手机镜头里或许有别人想知道的答案。
扫描二维码下载
×

类别

我们会通过消息、邮箱等方式尽快将举报结果通知您。

说明

0/200

提交
取消

辅 助

模 式