发文章
发文工具
撰写
网文摘手
文档
视频
思维导图
随笔
相册
原创同步助手
其他工具
图片转文字
文件清理
AI助手
留言交流
表 UserInfo
ID ID
Name 导航名称
SuperiorID 上级导航ID
using System;using System.Collections;using System.Configuration;using System.Data;using System.Linq;using System.Web;using System.Web.Security;using System.Web.UI;using System.Web.UI.HtmlControls;using System.Web.UI.WebControls;using System.Web.UI.WebControls.WebParts;using System.Xml.Linq;using System.Data.SqlClient;
namespace Test{ public partial class TreeviewBD : System.Web.UI.Page { protected void Page_Load(object sender, EventArgs e) { if (!IsPostBack) BindTree(); } private void BindTree() { DataTable dt = sencondNMClass.GetList("").Tables[0];//获取数据源 int s = dt.Rows.Count;// DataView dv = new DataView(dt); dv.RowFilter = "SuperiorID=0"; foreach (DataRowView drv in dv) { TreeNode node = new TreeNode(); node.Text = drv["Name"].ToString();//显示的文本 node.Value = drv["ID"].ToString();//不显示的 文本 值 node.SelectAction = TreeNodeSelectAction.None;//不引发事件 //node.ImageUrl = "~/images/folder.GIF";//节点旁边显示的节点 node.Expanded = true;//是否展开节点 TreeView1.Nodes.Add(node);//添加到根节点 AddReplies(dt, node);//递归函数 }
}
/// <summary> /// TreeView /// </summary> /// <param name="dt"></param> /// <param name="node"></param> protected void AddReplies(DataTable dt, TreeNode node) { DataView dv = new DataView(dt); dv.RowFilter = "SuperiorID='" + node.Value + "'";//过滤 node。Value 为上级的treeNode 值 foreach (DataRowView row in dv) { TreeNode replyNode = new TreeNode();//新建一个节点 replyNode.Text = row["Name"].ToString();//显示的文本 replyNode.Value = row["ID"].ToString();//不显示的 文本 值 replyNode.Expanded = false; node.ChildNodes.Add(replyNode);//添加到子节点 AddReplies(dt, replyNode);//继续递归函数 } }
}}
注:使用AddReplies递归函数时应注意节点的设置AddReplies(dt, replyNode)
HTML页面
<%@ Page Language="C#" AutoEventWireup="true" CodeBehind="TreeviewBD.aspx.cs" Inherits="Test.TreeviewBD" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www./TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www./1999/xhtml" ><head runat="server"> <title>无标题页</title></head><body> <form id="form1" runat="server"> <div> <asp:TreeView ID="TreeView1" runat="server"> </asp:TreeView>
</div> </form></body></html>
来自: 昵称10504424 > 《C#》
0条评论
发表
请遵守用户 评论公约
TreeView控件的绑定
namespace Model{ public class PNode { public int id { get;Rows) { PNode pnode = new PNode();pnode.id = (int)dr["category_id"];} ...
ASP.NET TREEVIEW 使用方法(2) - yyf919 - 博客园
TreeView结合XML把XML文件设置为如下格式,然后直接设置TreeNodeSrc为该XML文件就行<?xml version="1.0" encoding="GB2312"?><TREENODES> <TREENODE TEXT="no...
Asp.Net中使用TreeView连接数据库动态加载节点问题
我个人建议不要用DataTable,DataSet之类的集合作在前台中使用,因为这样不能体现出面向对象的思想
采用递归算法为TreeView控件加载节点(节点信息保存于SqlServer) ASP.Net相...
采用递归算法为TreeView控件加载节点(节点信息保存于SqlServer) ASP.Net相...通常TreeView控件的节点数据是使用xml文件保存于Web目录下...
TreeView绑定产品信息
//创建根节点 TreeNode rootNode = new TreeNode(); //设置根节点属性 rootNode.Text = rowlist[0]["Desn"].ToString(); //设置根节点的key值 root...
数据库驱动的asp.net treeview
数据库驱动的asp.net treeview.NodeID(节点ID) NodeName(节点名称) Link(节点超链接) ParentID(父节点ID)16 //-------------------------------------------------17 18 }19 public void AddTree(...
分享一个简单的资源管理器程序,主要是演示下LINQ在C#开发中的运用
分享一个简单的资源管理器程序,主要是演示下LINQ在C#开发中的运用以前有人在论坛里面问过,如何实现一个类似资源管理器的界面,其实运...
asp.net为Treeview动态增加节点实例
asp.net为Treeview动态增加节点实例asp.net为Treeview动态增加节点实例。</script></head><body><form id="form1" runat="server"><div><asp:Tr...
用TreeView实现树菜单
数据结构如下:CREATE TABLE [dbo].[S_Menu] ( [NodeId] [char] (6) COLLATE Chinese_PRC_CI_AS NULL , [ParentId] [char] (6) COLLATE Chinese_PRC_CI_AS NULL , [NodeName] [nvarchar] (50) COLLATE ...
微信扫码,在手机上查看选中内容