递归调用
///
/// 根据菜单表把权限树加载好
///
/// 数据源
/// 上级ID
/// 树节点
private void treeadd(DataTable dt, int Filterid, TreeNode node)
{
DataView subView = dt.DefaultView;
subView.RowFilter = "ParentID = " + Filterid; //获得ID级别为当前ID的
foreach (DataRowView item in subView)
{
//如果上级ID为0就直接加载树下面
if (Filterid == 0)
{
TreeNode treenodel = new TreeNode(); //创建一个节点
treenodel.Text = item["MenuName"].ToString(); 节点名称
int id =Convert.ToInt32(item["MenuID"]);
treenodel.Value = id.ToString(); 节点值
treeDepts.Nodes.Add(treenodel); 如果级别ID为0就直接加到根节点
treeadd(dt, id, treenodel); 递归调用
}
else
{
//不为0就加载传进来的子节点下
TreeNode treenodel = new TreeNode();
treenodel.Text = item["MenuName"].ToString();
int id = Convert.ToInt32(item["MenuID"]);
treenodel.Value = id.ToString();
treenodel.Expanded = true; 是否展开该节点
node.ChildNodes.Add(treenodel); 把节点加入到当前节点下,
treeadd(dt, id, treenodel);
}
}
}
可直接在object browser 里找到这个类,鼠标点击,就可以看到其函数和成员,下面有每个参数的详细说明。还可以按F1键,就会出来说明文档,有时会有使用例子看到。
递归显示,修改删除 添加的 时候用到他得 选中事件, 常用的也就这些。其他的无非是个效果, 练习几遍就会了。