利用.net TreeView控件实现无限级分类


protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
BindTreeView();
}
}

/// <summary>
/// 绑定TreeView控件
/// </summary>
protected void BindTreeView()
{
//先清空所有节点
tvMenu.Nodes.Clear();
string sql = "select * from menu";
DataTable dt = SqlHelper.GetDataTable(sql);
DataView parentNodes = dt.DefaultView;
//根据筛选DataTable中的内容
parentNodes.RowFilter = "menuNodeId = 0";
foreach (DataRowView parentNode in parentNodes)
{
TreeNode node = new TreeNode();
node.Text = parentNode["menuName"].ToString();
node.Value = parentNode["menuId"].ToString();
//切换节点的展开和折叠状态
node.SelectAction = TreeNodeSelectAction.Expand;
//绑定子节点
GetChildrenNode(dt, node);
//添加根节点
tvMenu.Nodes.Add(node);
}
}

/// <summary>
/// 绑定子节点
/// </summary>
/// <param name="dt">DataTable对象</param>
/// <param name="parentNode">根节点对象</param>
protected void GetChildrenNode(DataTable dt, TreeNode parentNode)
{
DataView childrenNodes = dt.DefaultView;
childrenNodes.RowFilter = "menuNodeId = " + parentNode.Value.Trim();
foreach (DataRowView childrenNode in childrenNodes)
{
TreeNode node = new TreeNode();
node.Text = childrenNode["menuName"].ToString();
node.Value = childrenNode["menuId"].ToString();
//通过递归调用显示所有子节点
GetChildrenNode(dt, node);
//添加节点
parentNode.ChildNodes.Add(node);
}
}



[img]http://dl.iteye.com/upload/attachment/451268/1a3ec3ac-4f56-3b39-b048-d8be374a8326.gif[/img]
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值