private void RefreshTreeView() //根节点,所有节点挂在这个节点下
{
TreeNode tmp = new TreeNode("商品分类")//根节点
tmp.Tag = ""
this.GoodsTypetreeView.Nodes.Add(tmp)
//获取数据,显示到GoodsTypetreeView
String sqlStr = String.Format(@"Select TypeCode,TypeName,ParentTypeCode,case IsCommon when '0' then '否' else '是'
end as IsCommon,case Status when '0' then '未用' else '使用' end as Status,Remark from Com_GoodsType where Status = 1")
DataSet ds = SqlDBHelper.GetDs(sqlStr)
//nodes(this.GoodsTypetreeView.Nodes, ds, 0)
nodes(tmp, ds, "")
}
用了一个递归方法private void Form1_Load(object sender, EventArgs e)
{
DataRow dr = "select id,name from table where parentId = 0"//获取根节点信息
TreeNode node = new TreeNode()//创建一个根节点
node.Name = dr[0].ToString()
node.Text = dr[1].ToString()
AddNodes(node)//为根节点递归绑定子节点
this.treeView1.Nodes.Add(node)//将根节点放入到树控件
}
private void AddNodes(TreeNode parentNode)
{
DataTable dt = "select id,name from table where parentId = " + node.Name//获取此节点的子节点
if (dt.Rows.Count == 0)
{
return//如果没有根节点则返回;
}
for (int i = 0i <dt.Rows.Counti++)
{
DataRow dr = dt.Rows[i]
TreeNode node = new TreeNode()//创建一个节点
node.Name = dr[0].ToString()
node.Text = dr[1].ToString()
parentNode.Nodes.Add(node)//将节点放到父节点下
AddNodes(node)//然后对该节点进行递归
}
}
treeview没有DataSource属性,需要通过添加节点,如用:treeView1.Nodes.Add(nodes)添加,nodes参数,便可从数据库中读取某个字段信息来填充了。比如:
//数据库连接,用了helper类
string commandText="select NAME from STUDENT_TB"
dt = OracleHelper.GetDataTable(commandText)
//treeview添加节点数据
string nodes=string.Empty
for(int i=0i<dt.Rows.Counti++)
{
nodes=dt.Rows[i]["NAME"].ToString()
TreeNode root = new TreeNode(nodes)
root.Tag = 0
treeView1.Nodes.Add(root)
}
欢迎分享,转载请注明来源:内存溢出
评论列表(0条)