用DataTable绑定TreeView的方法

  用DataTable绑定TreeView的方法 :
  1. 从数据库读取含父子关系列的表并填充到DataSet里去
  2. 创建一个关白联,并为DataSet添加该关联,DataSetNested属性必需为true.
  3. 取得该DataSet的XML描述,用XSLT将XML规则化.
  4. 绑定TreeView.

 

表的内容描述如下:

表名:CATEGORIES

CategoryID

ParentCategoryID

CategoryName

2

 

1

3

 

2

4

 

3

5

2

1.1

6

2

1.2

7

2

1.3

8

3

2.1

9

3

2.2

10

4

3.1

11

5

1.1.1

12

5

1.1.2

13

10

3.1.1

14

13

3.1.1.1

15

14

3.1.1.1.1

16

14

3.1.1.1.2

17

14

3.1.1.1.3

 

填充DataSet

// Connection to database

OleDbConnection objConn
=
new  OleDbConnection( " Provider=Microsoft.Jet.OLEDB.4.0;
Data Source=
"   +  Server.MapPath( " db.mdb " )   +   " ;Persist Security Info=False " ); 

// SQL query to get data from CATEGORIES table

OleDbCommand objCommand
= new  OleDbCommand( " SELECT * FROM CATEGORIES " ,objConn);

// OleDbDataAdapter

OleDbDataAdapter objDa 
= new  OleDbDataAdapter(objCommand);

// DataSet

DataSet ds
= new  DataSet( " CATEGORIESDS " );
 

// Fill DataSet

objDa.Fill(ds ,
" CATEGORIES " );

 添加关联

// Create DataRelation

DataRelation drel
= new  DataRelation( " CATEGORIES_RECURSIVE " ,
ds.Tables[
" CATEGORIES " ].Columns[ " CategoryID " ],
ds.Tables[
" CATEGORIES " ].Columns[ " ParentCategoryID " ]);
 

// Make sure relation is nested

drel.Nested 
= true ;

 

// Add relation to DataSet's Relations collection

ds.Relations.Add(drel);

 

XML转换

// XmlDocument to hold XML generated from DataSet

XmlDocument objDoc
= new  XmlDocument();

 

// Load XML

objDoc.LoadXml(ds.GetXml());

 

// Create XslTransform object

XslTransform objXSL
= new  XslTransform();

 

// Load XSLT stylesheet

objXSL.Load(Server.MapPath(
" transformationtemplate.xslt " ));

 

// StringWriter to temporarily hold result of the transformation

StringWriter writer
= new  StringWriter();

 

// Apply transformation with no arguments and dump results to StringWriter.

objXSL.Transform(objDoc.CreateNavigator(),
null ,writer);

 

绑定TreeView

// Set TreeView's TreeNodeSrc property to get XML from StringWriter.

TreeView1.TreeNodeSrc 
= writer.ToString();

 

// Bind TreeView

TreeView1.DataBind();

 

// Close StringWriter

writer.Close();

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值