首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > asp.net >

treeview绑定数据库解决方法

2012-01-26 
treeview绑定数据库新手,不会treeview绑定数据库,望给个例子或提示!我的表是这样的:cDepCodebDepEndcDepNa

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);
}
}
}

热点排行