c#、winform、treeview 部分节点加图片
【部门表】是存放在MSSQLSERVER中,数据结构中的字段有“部门编号”、“部门名”、“父节点编号”分别表示“dpid"、、“dpname”、“dppid”,用树形tr...
【部门表】是存放在MS SQL SERVER 中,数据结构中的字段有“部门编号”、“部门名”、“父节点编号”分别表示“dpid"、、“dpname”、“dppid”,用树形treeview控件展示出来,用递归的方法邦定数据:(方法 BindTreeView() 放在页面初始加载时 或 放在刷新按钮上 )
//邦定treeview
public void BindTreeView()
{
sqlconn.GetConn().Open();//打开数据库连接
#region //初始化treeview信息
this.treeView1.Nodes.Clear();
TreeNode root = new TreeNode("Nexscien 部门列表");//添加根节点
root.Tag = 0;
root.NodeFont = new Font("宋体", 15, FontStyle.Underline);
this.treeView1.ItemHeight = 30;
this.treeView1.Nodes.Add(root);
#endregion
SqlDataAdapter sqldap = new SqlDataAdapter(msl.tvpid(), sqlconn.GetConn());
DataSet ds = new DataSet();
sqldap.Fill(ds);
DataView dv = ds.Tables[0].DefaultView;
foreach (DataRowView row in dv)
{
string name = row["dpname"].ToString().Trim();
int id = Convert.ToInt32(row["dpid"].ToString().Trim());
TreeNode tn = new TreeNode(name);
tn.Tag = row["dpid"].ToString();//记录部门ID
tn.NodeFont = new Font("宋体", 13, FontStyle.Underline);
TV_Addchildnodes(tn, id);
this.treeView1.Nodes.Add(tn);
}
sqlconn.GetConn().Close();
}
//子节点递归循环
public void TV_Addchildnodes(TreeNode node, int nodeID)
{
SqlDataAdapter sqldap = new SqlDataAdapter(msl.tvcid(nodeID), sqlconn.GetConn());
DataSet ds = new DataSet();
sqldap.Fill(ds);
DataView dv = ds.Tables[0].DefaultView;
foreach (DataRowView row in dv)
{
string name = row["dpname"].ToString().Trim();
int id = Convert.ToInt32(row["dpid"].ToString().Trim());
TreeNode tn = new TreeNode(name);
tn.Tag = row["dpid"].ToString();
tn.NodeFont = new Font("宋体", 11, FontStyle.Underline);
TV_Addchildnodes(tn, id);
node.Nodes.Add(tn);
//tn.Expand();
}
}
【员工表】数据结构中的字段有“员工编号”、“员工姓名”、“部门编号”、“父节点编号”分别表示“pid”、“pname”、“dpid”、“dppid”。
【部门表】和【员工表】在程序中的逻辑关系是先添加部门才能添加员工并对该员工分配部门。
问:在treeview 控件加载邦定部门表时,无论父节点、子节点,判断每一个节点如果有员工存在则让该节点添加图片,这一功能如何实现 ???? 展开
//邦定treeview
public void BindTreeView()
{
sqlconn.GetConn().Open();//打开数据库连接
#region //初始化treeview信息
this.treeView1.Nodes.Clear();
TreeNode root = new TreeNode("Nexscien 部门列表");//添加根节点
root.Tag = 0;
root.NodeFont = new Font("宋体", 15, FontStyle.Underline);
this.treeView1.ItemHeight = 30;
this.treeView1.Nodes.Add(root);
#endregion
SqlDataAdapter sqldap = new SqlDataAdapter(msl.tvpid(), sqlconn.GetConn());
DataSet ds = new DataSet();
sqldap.Fill(ds);
DataView dv = ds.Tables[0].DefaultView;
foreach (DataRowView row in dv)
{
string name = row["dpname"].ToString().Trim();
int id = Convert.ToInt32(row["dpid"].ToString().Trim());
TreeNode tn = new TreeNode(name);
tn.Tag = row["dpid"].ToString();//记录部门ID
tn.NodeFont = new Font("宋体", 13, FontStyle.Underline);
TV_Addchildnodes(tn, id);
this.treeView1.Nodes.Add(tn);
}
sqlconn.GetConn().Close();
}
//子节点递归循环
public void TV_Addchildnodes(TreeNode node, int nodeID)
{
SqlDataAdapter sqldap = new SqlDataAdapter(msl.tvcid(nodeID), sqlconn.GetConn());
DataSet ds = new DataSet();
sqldap.Fill(ds);
DataView dv = ds.Tables[0].DefaultView;
foreach (DataRowView row in dv)
{
string name = row["dpname"].ToString().Trim();
int id = Convert.ToInt32(row["dpid"].ToString().Trim());
TreeNode tn = new TreeNode(name);
tn.Tag = row["dpid"].ToString();
tn.NodeFont = new Font("宋体", 11, FontStyle.Underline);
TV_Addchildnodes(tn, id);
node.Nodes.Add(tn);
//tn.Expand();
}
}
【员工表】数据结构中的字段有“员工编号”、“员工姓名”、“部门编号”、“父节点编号”分别表示“pid”、“pname”、“dpid”、“dppid”。
【部门表】和【员工表】在程序中的逻辑关系是先添加部门才能添加员工并对该员工分配部门。
问:在treeview 控件加载邦定部门表时,无论父节点、子节点,判断每一个节点如果有员工存在则让该节点添加图片,这一功能如何实现 ???? 展开
2个回答
2012-09-22
展开全部
我记得treeview有个属性是可以加图片的,你好好找找看
已赞过
已踩过<
评论
收起
你对这个回答的评价是?
推荐律师服务:
若未解决您的问题,请您详细描述您的问题,通过百度律临进行免费专业咨询