zoukankan      html  css  js  c++  java
  • 用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();

  • 相关阅读:
    CF终于上紫了。。。
    CF567F/51nod2522 上下序列
    bzoj 前100题计划
    CF1110G Tree-Tac-Toe 博弈论、构造
    BZOJ4816 SDOI2017 数字表格 莫比乌斯反演
    UOJ400/LOJ2553 CTSC2018 暴力写挂 边分治、虚树
    Luogu4774 NOI2018 屠龙勇士 ExCRT
    CF1039D You Are Given a Tree 根号分治、二分、贪心
    CF1056E Check Transcription 字符串哈希
    Luogu4345 SHOI2015 超能粒子炮·改 Lucas、数位DP
  • 原文地址:https://www.cnblogs.com/gxlinhai/p/534508.html
Copyright © 2011-2022 走看看