首页 热点资讯 义务教育 高等教育 出国留学 考研考公

asp.net(c#)用treeview怎样创建节点?

发布网友 发布时间:2022-04-23 06:16

我来回答

2个回答

热心网友 时间:2022-04-25 08:27

动态的
protected void Page_Load(object sender, EventArgs e)
{

if (!IsPostBack)
{
CreateTreeView();
}
}

/**//// <summary>
/// 创建 TreeView
/// 此方法采取一次性加载目标数据到 DataTable,递归查询 DataTable ,创建子节点
/// </summary>
private void CreateTreeView()
{
SqlConnection sqlcon = new SqlConnection("server=localhost;uid=sa;pwd=;database=zxxx");
sqlcon.Open();
string strsql = "SELECT NodeId, NodeName,ParentId FROM TreeView ORDER BY NodeId ASC";
SqlDataAdapter da = new SqlDataAdapter(strsql, sqlcon);
// const int VirtualRootId = 0; // 虚拟的根节点 ID, 表中 ParentID=0 的节点表示无实际父节点
DataTable dt = new DataTable();
da.Fill(dt);
CreateTreeViewRecursive(TreeView1.Nodes, dt, 0);
}

/**//// <summary>
/// 递归查询数据,创建 TreeNode 节点
/// </summary>
/// <param name="nodes"></param>
/// <param name="dataSource"></param>
/// <param name="parentId"></param>
private void CreateTreeViewRecursive(TreeNodeCollection nodes, DataTable dataSource, int parentId)
{
//
string fliter = String.Format("ParentId={0}", parentId);
// 查询子节点
DataRow[] drArr = dataSource.Select(fliter);

TreeNode node;
foreach(DataRow dr in drArr) {
//
node = new TreeNode();
nodes.Add(node);
node.Text = (string)dr["NodeName"];
// 设置其他属性
//

// 递归创建子节点
CreateTreeViewRecursive(node.ChildNodes, dataSource, (int)dr["NodeId"]);

// 移除已添加行,提高性能
dataSource.Rows.Remove(dr);
}
}
试试行的话。。呵呵

热心网友 时间:2022-04-25 09:45

静态节点的话可以在该控件右上角处点那个小三角进入编辑菜单;
动态节点的话就可以编写代码结合数据库,或XML文件或站点地图实现;

声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com