您的位置:首页 > 编程语言 > C#

C# .NET treeView(树形控件)绑定数据的通用方法 (精)

2013-10-28 15:46 561 查看
DataTable dtCangKu = new DataTable(); //定义一张新表
BLL基础数据.frm_CangKuZiLiao.frm_CangKuZiLiaoClient myfrm_CangKuZiLiaoClient = new BLL基础数据.frm_CangKuZiLiao.frm_CangKuZiLiaoClient();
private void frm_CangKuZiLiao_Load(object sender, EventArgs e)
{
dtCangKu = myfrm_CangKuZiLiaoClient.frm_CangKuZiLiao_Load_SlectCangKu().Tables[0]; //调用方法,从数据库提取数据
tv_CangKu.Nodes.Clear(); //清空树形控件的所有节点
AddTree(0, (TreeNode)null); //循环递归提取数据
tv_CangKu.ExpandAll(); //展开树形控件的所有节点
}
#region 循环递归提取数据(部门)
public void AddTree(int ParentID, TreeNode pNode)
{
DataTable dtTree = myfrm_CangKuZiLiaoClient.frm_CangKuZiLiao_Load_getCangKu(ParentID).Tables[0];
DataView dvTree = new DataView(dtTree);
string Fstr = "[仓库ID_Far] =" + ParentID;
dvTree.RowFilter = Fstr;
foreach (DataRowView Row in dvTree)
{
TreeNode Node = new TreeNode();
if (pNode == null)                  //处理主节点
{
Node.Name = Row["仓库ID"].ToString(); //这里+了2个值分别到Name和Text
Node.Text = Row["仓库名称"].ToString();
tv_CangKu.Nodes.Add(Node);
AddTree(Int32.Parse(Row["仓库ID"].ToString()), Node); //递归
}
else //处理子节点
{
Node.Name = Row["仓库ID"].ToString();
Node.Text = Row["仓库名称"].ToString();

pNode.Nodes.Add(Node);
AddTree(Int32.Parse(Row["仓库ID"].ToString()), Node);
}
Node.Tag = Row["仓库ID"];  //获取当前节点数据(ID)
}
}
#endregion
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
相关文章推荐