C#实现treeview绑定,取值,选中样式

前台
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="Admin_manageProduct_Default" %>

<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">

<html xmlns="http://www.w3.org/1999/xhtml">
<head runat="server">
    <title></title>
</head>
<body>
    <form id="form1" runat="server">
    <div>
        <asp:TreeView ID="TreeView1" runat="server" ShowLines="True" 
            onselectednodechanged="TreeView1_SelectedNodeChanged">
        </asp:TreeView>
        <asp:Button ID="Button1" runat="server" Text="Button" οnclick="Button1_Click" />
    </div>
    </form>
</body>
</html>
后台
using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.UI;
using System.Web.UI.WebControls;

using System.Data;

public partial class Admin_manageProduct_Default : System.Web.UI.Page
{
    protected void Page_Load(object sender, EventArgs e)
    {
        if (!IsPostBack)
        {
            bindTree();
        }
        else
        {
            Response.Write("选择节点触发回发了");
        }
    }

    private void bindTree()
    {
        MainCode mainCode = new MainCode();

        DataTable dt = mainCode.GetProductType();//得到需要的datatable
        this.FillNode(dt, null);
    }

    private void FillNode(DataTable dt, TreeNode node)
    {
        DataView dv = new DataView(dt);
        if (node == null)    //根结点
        {
            dv.RowFilter = "PT_ParentID='0'";  //筛选到根结点的所有子节点
        }
        else  //不是根结点
        {
            dv.RowFilter = "PT_ParentID='" + node.Value + "'";   //筛选对应节点的所有子节点
        }
        foreach (DataRowView drv in dv)   //遍历填充节点的所有子节点,如果传入的节点node为叶子节点,遍历要退出,不再进行递归
        {
            TreeNode no = new TreeNode(drv["PT_Name"].ToString(), drv["PT_ID"].ToString());
            FillNode(dt, no);  //填充no节点的子节点
            if (node == null)
            {
                this.TreeView1.Nodes.Add(no);
            }
            else
            {
                node.ChildNodes.Add(no);
            }
        }
    }

    protected void Button1_Click(object sender, EventArgs e)
    {
        Response.Write("选择的文本是" + TreeView1.SelectedNode.Text);
        Response.Write("选择的类型是" + TreeView1.SelectedValue);
    }

    protected void TreeView1_SelectedNodeChanged(object sender, EventArgs e)
    {
        TreeView1.SelectedNodeStyle.BackColor = System.Drawing.Color.Red;
    }
}

关于获取数据,大家可以自己写一个ID NAME PID的分类表 获取了就可以了。

希望本文所述对大家的C#程序设计有所帮助。

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值