教程中国
PHOTOSHOP CS9.0中文版 MAYA 8.5 FOR WINDOWS Corel Painter v9.0 Flash MX2004 中文版 Illustrator cs2 中文版
VC++6.0含sp6 中英文版 VB6.0 +sp6 简体中文版 Borland Delphi 7汉化版 MSDN for vb6.0中文版 Visual Studio 2005简体
教程中国下属 文件存储共享专家BIBIDU.COM 提供大型软件,教材,源码,电影,音乐,图书等下载 更多精品请点此进入
  您目前所在位置: 教程中国 >> .NET类 >> ASP.NET >> 使用嵌套的Repeater控件显示分级数据 RSS订阅
使用嵌套的Repeater控件显示分级数据
教程(视频,书籍)下载:  ASP.NET AutoCAD 数据库 C# ASP java photoshop 网页设计 delphi 3dmax Flash C++ VB 张孝祥 实例   更多请进入BIBIDU搜索
IT搜索引擎   
     本文描述如何使用嵌套的Repeater 控件来显示分级数据 。当然了,你也可以将这一技术应用到其他的列表绑定控件上去,比如DataGrid包含DataGrid,DataList包含DataList等等的组合。
  
    绑定到父表
  
    1.添加一个新的Web Form 到应用程序项目中,名称为Nestedrepeater.ASPx.
    2.从工具箱托动一个Repeater 控件到这个页面上, 设定其ID 属性为 parent .
    3.切换到HTML 视图.
    4.选中下列<itemtemplate> 代码,复制到Repeater 控件对应的位置。注意,粘贴的时候请使用“粘贴为HTML”功能。这些语句包含了数据绑定语法,很简单。
  
  
  <itemtemplate>
  <b><%# DataBinder.Eval(Container.DataItem, "au_id") %></b><br>
  </itemtemplate>
  
    5.打开Nestedrepeater.ASPx.cs 这个代码分离文件。降下列代码添加到Page_Load 事件中,其作用是建立一个到 Pubs (这个数据库是sql server的演示数据库。另外在安装.net framework sdk的时候也会安装这个数据库)数据库的连接,并绑定Authors 表到Repeater 控件
  
  public void Page_Load()
  {
   SqlConnection cnn = new SqlConnection("server=(local);database=pubs;uid=sa;pwd=;");
   SqlDataAdapter cmd1 = new SqlDataAdapter("select * from authors",cnn);
    DataSet ds = new DataSet();
    cmd1.Fill(ds,"authors");
  
    //这里将要插入子表的数据绑定
  
    parent.DataSource = ds.Tables["authors"];
    Page.DataBind();
   cnn.Close();
  }
  
  
    6.在文件的头部添加下面的名称空间
    using System.Data.SqlClient;
    7.根据你自己的情况修改一下连接字符串
    8.保存并编译应用程序
    9.在浏览器中打开这个页面,输出结果类似于下面的格式
  
  
  172-32-1176
  213-46-8915
  238-95-7766
  267-41-2394
  ...
  
    绑定到子表
  
    1.在页面的HTML视图中,添加下列代码。其目的是增加子Repeater 控件到父Repeater的项目模板中,形成嵌套。
  
  <ASP:repeater id="child" runat="server">
  <itemtemplate>
  <%# DataBinder.Eval(Container.DataItem, "[\"title_id\"]") %><br>
  </itemtemplate>
  </ASP:repeater>
  
    2.设置子Repeater 控件的DataSource 属性:
  
  <ASP:repeater ... datasource='<%# ((DataRowView)Container.DataItem)
  .Row.GetChildRows("myrelation") %>'>
  
    3.在页面顶部添加下列指令(请注意,是在.ASPx文件中):
  
    <%@ Import Namespace="System.Data" %>
  
    在.cs文件中,将Page_Load中的注释部分(//这里将要插入子表的数据绑定)替换成下列代码:
  
  SqlDataAdapter cmd2 = new SqlDataAdapter("select * from titleauthor",cnn);
  cmd2.Fill(ds,"titles");
  ds.Relations.Add("myrelation",
  ds.Tables["authors"].Columns["au_id"],
  ds.Tables["titles"].Columns["au_id"]);
  
    4.保存并编译应用程序。
    .在浏览器中察看修改后的页面。显示格式类似于下面的格式:
  
  172-32-1176
  PS3333
  213-46-8915
  BU1032
  BU2075
  238-95-7766
  PC1035
  267-41-2394
  BU1111
  TC7777
  ...
  
  完整的代码
  
  Nestedrepeater.ASPx
  <%@ Page Language=C# Inherits="yourprojectname.nestedrepeater" %>
  <%@ Import Namespace="System.Data" %>
  
  <HTML>
  <body>
  <form runat=server>
  
  <!-- start parent repeater -->
  <ASP:repeater id="parent" runat="server">
    <itemtemplate>
     <b><%# DataBinder.Eval(Container.DataItem,"au_id") %></b><br>
  
     <!-- start child repeater -->
     <ASP:repeater id="child" datasource='<%# ((DataRowView)Container.DataItem)
  .Row.GetChildRows("myrelation") %>' runat="server">
      <itemtemplate>
        <%# DataBinder.Eval(Container.DataItem, "[\"title_id\"]")%><br>
       </itemtemplate>
     </ASP:repeater>
     <!-- end child repeater -->
  
   </itemtemplate>
  </ASP:repeater>
  <!-- end parent repeater -->
  
  </form>
  </body>
  </HTML>
  Nestedrepeater.ASPx.cs
  using System;
  using System.Data;
  using System.Data.SqlClient;
  using System.Web;
  using System.Web.SessionState;
  using System.Web.UI;
  using System.Web.UI.WebControls;
  
  namespace yourprojectname
  {
   public class nestedrepeater : System.Web.UI.Page
    {
     protected System.Web.UI.WebControls.Repeater parent;
     public nestedrepeater()
     {
       Page.Init += new System.EventHandler(Page_Init);
     }
     public void Page_Load(object sender, EventArgs e)
     {
       //Create the connection and DataAdapter for the Authors table.
       SqlConnection cnn = new SqlConnection("server=(local);database=pubs;uid=sa;pwd=;");
       SqlDataAdapter cmd1 = new SqlDataAdapter("select * from authors",cnn);
  
       //Create and fill the DataSet.
       DataSet ds = new DataSet();
       cmd1.Fill(ds,"authors");
  
       //Create a second DataAdapter for the Titles table.
       SqlDataAdapter cmd2 = new SqlDataAdapter("select * from titleauthor",cnn);
       cmd2.Fill(ds,"titles");
  
       //Create the relation bewtween the Authors and Titles tables.
       ds.Relations.Add("myrelation",
       ds.Tables["authors"].Columns["au_id"],
       ds.Tables["titles"].Columns["au_id"]);
  
       //Bind the Authors table to the parent Repeater control, and call DataBind.
       parent.DataSource = ds.Tables["authors"];
       Page.DataBind();
  
       //Close the connection.
       cnn.Close();
     }
     private void Page_Init(object sender, EventArgs e)
     {
       InitializeComponent();
     }
     private void InitializeComponent()
     {
      this.Load += new System.EventHandler(this.Page_Load);
     }
    }
  }
  
  
    。



来源:upschool.com.cn
作者:
关键字:使用嵌套
发表日期:2006-12-21

网页显示有限 阅读全文请下载本文完整版WORD文档

上一篇:ASP.NET 2.0中随机读取Access数据库记录   下一篇:ASP.NET中树形图的实现 3


本文的相类似文章
  • 使用嵌套的Repeater控件显示分级数据
  • 使用嵌套的Repeater控件
  • 网友评论 查看本文全部评论
    笔 名: *
    评 论:
    最多500字。当前字数:0
    联系方式:
    验证码:
    在学习中进步 在进步中成长 教程中国相随您的成长之路
    华腾联合科技股份有限公司版权所有
    广告联系:Rosibo@163.com