treeview绑定数据库
新手,不会treeview绑定数据库,望给个例子或提示!
我的表是这样的:
cDepCode bDepEnd cDepName iDepGrade
01 0 生产部 1
02 1 工程部 1
03 0 采购部 1
0101 1 生产一部 2
0102 1 生产二部 2
0301 1 采购一部 2
0302 1 采购二部 2
04 0 业务部 1
0401 1 业务一部 2
0402 1 业务二部 2
cDepCode是部门编码,bDepEnd表示部门是否末级(0为否,1为是--系统填写),cDepName是部门名称,iDepGrade表示部门级次(由系统填写)。
因为这个表是动态的,所以必须用代码来添加,或者各位有什么好方法,也可以告诉我!拜托大家帮帮忙啊 !
[解决办法]
private void BindTree()
{
DataTable dt = 数据源; //自己去指定。。。
DataView dv = new DataView(dt);
dv.RowFilter = "ParentID is null ";
foreach (DataRowView drv in dv)
{
TreeNode node = new TreeNode();
node.Text = drv[ "Name "].ToString();
node.Value = drv[ "ID "].ToString();
node.ImageUrl = "~/images/folder.GIF ";
node.Expanded = true;
this.tvRight.Nodes.Add(node);
AddReplies(dt,node);
}
}
//递归函数
private void AddReplies(DataTable dt, TreeNode node)
{
DataView dv = new DataView(dt);
dv.RowFilter = "ParentID= ' " + node.Value + " ' ";
foreach (DataRowView row in dv)
{
TreeNode replyNode = new TreeNode();
replyNode.Text = row[ "Name "].ToString();
replyNode.Value = row[ "ID "].ToString();
replyNode.Expanded = false;
node.ChildNodes.Add(replyNode);
AddReplies(dt,replyNode);
}
}
[解决办法]
private void InitReportMenu()
{
try
{
string strGCD = Session[ "CD "].ToString().Trim();
DataSet ds = GetDataFromDB(strCD);
if (!ds.Tables[0].Rows.Count.Equals(0))
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TreeNode menuNode = new TreeNode();
menuNode.Text = ds.Tables[0].Rows[i][ "Name "].ToString();
menuNode.Value = ds.Tables[0].Rows[i][ "Code "].ToString();
TreeView1.Nodes.Add(menuNode);
//二
addchildmenu1(menuNode, menuNode.Value);
}
}
}
catch
{
throw;
}
}
private void addchildmenu1(TreeNode node, string strID)
{
string strUGCD = Session[ "CD "].ToString().Trim();
DataSet ds = GetDateFromDB(strID);
if (!ds.Tables[0].Rows.Count.Equals(0))
{
for (int i = 0; i < ds.Tables[0].Rows.Count; i++)
{
TreeNode menuNode = new TreeNode();
menuNode.Text= ds.Tables[0].Rows[i][ "NAME "].ToString();
menuNode.Value = ds.Tables[0].Rows[i][ "CODE "].ToString();
node.ChildNodes.Add(menuNode);
}
}
}