用户操作
[留言]  [发消息]  [加为好友] 
订阅我的博客
XML聚合    FeedSky
订阅到鲜果
订阅到Google
订阅到抓虾
my22xo的公告
欢迎光临我的博客,也欢迎访问我的asp.net做的小站http://iaocstock.vicp.net,呵呵,希望结识一些朋友共同学习C#
文章分类
我的网站
丰胸产品
叫饭啦
整形美容
极好网络导航
深圳进出口网
存档

原创  asp.net2.0实现TreeView无限级分类(递归法) 收藏

数据表

CREATE TABLE [dbo].[NewsClass](
 [Id] [int] IDENTITY(1,1) NOT NULL,
 [Pid] [int] NULL DEFAULT ((0)),
 [ClassName] [varchar](20) NOT NULL,
 [OrderBy] [int] NULL DEFAULT ((0)),
PRIMARY KEY CLUSTERED
(
 [Id] ASC
)WITH (PAD_INDEX  = OFF, STATISTICS_NORECOMPUTE  = OFF, IGNORE_DUP_KEY = OFF, ALLOW_ROW_LOCKS  = ON, ALLOW_PAGE_LOCKS  = ON) ON [PRIMARY]
) ON [PRIMARY]

 

 

  

  1.       private DataTable dt = new DataTable();
  2.         protected void Page_Load(object sender, EventArgs e)
  3.         {
  4.             if (!Page.IsPostBack)
  5.             {
  6.                 BLL.NewsClass newsClass=new BLL.NewsClass();
  7.                 dt = newsClass.GetData("select * from NewsClass Order By OrderBy desc"null).Tables[0];//逻辑层自定义的代码
  8.                 AddMyNode(null);
  9.             }
  10.         }
  11. //递归算法:
  12.         /// <summary>
  13.         /// 递归实现无限级TreeView(Jason_iaoc)
  14.         /// </summary>
  15.         /// <param name="currentNode"></param>
  16.         private void AddMyNode(TreeNode currentNode)
  17.         {
  18.             if (currentNode == null)//添加根结点
  19.             {
  20.                 DataView dv = dt.DefaultView;
  21.                 dv.RowFilter = "pid=0";
  22.                 dv.Sort = "orderby desc";
  23.                 TreeNode node = null;
  24.                 foreach (DataRowView drv in dv)
  25.                 {
  26.                     node = new TreeNode();
  27.                     node.Value = drv["id"].ToString();
  28.                     node.Text = drv["ClassName"].ToString();
  29.                     node.Expanded = false;
  30.                     this.TreeView1.Nodes.Add(node);
  31.                     AddMyNode(node);
  32.                 }
  33.             }
  34.             else//添加子结点
  35.             {
  36.                 DataView dv = dt.DefaultView;
  37.                 dv.RowFilter = "pid=" + currentNode.Value;
  38.                 dv.Sort = "orderby desc";
  39.                 TreeNode node = null;
  40.                 foreach (DataRowView drv in dv)
  41.                 {
  42.                     node = new TreeNode();
  43.                     node.Value = drv["id"].ToString();
  44.                     node.Text = drv["ClassName"].ToString();
  45.                     node.Expanded = false;
  46.                     currentNode.ChildNodes.Add(node);
  47.                     AddMyNode(node);
  48.                     //this.TreeView1.Nodes.Add(node);
  49.                 }
  50.             }
  51.         }

发表于 @ 2008年10月15日 01:40:00 | 评论( loading... ) | 编辑| 举报| 收藏

旧一篇:关于VS2005从源视图切换到设计视图速度超慢的解决办法 | 新一篇:关于近期闹的满城风雨的高考作弊问题的一些联想(转)

  • 发表评论
  • 评论内容:
  •  
Copyright © my22xo
Powered by CSDN Blog