当前位置:中国站长下载文章中心网页编程.NET编程 → 利用Repeater控件显示主-从关系数据表

利用Repeater控件显示主-从关系数据表

减小字体 增大字体 作者:不详  来源:不详  发布时间:2006-8-14 9:28:33
     本文介绍了一种利用Repeater控件显示主-从关系数据表的方法。
  
  原文参见:http://support.microsoft.com/default.ASPx?scid=kb;en-us;306154
  
  NestedRepeater.aspx
  
  <%@ Import Namespace="System.Data" %>
  <%@ Page language="<a href="http://dev.21tx.com/dotnet/csharp/" target="_blank">C#</a>" Codebehind="NestedRepeater.aspx.cs"
  AutoEventWireup="false" Inherits="eMeng.NestedRepeater" %>
  <HTML>
  <body>
  <form runat="server">
  <!-- 父Repeater开始 -->
  <asp:repeater id="parentRepeater" runat="server">
   <itemtemplate>
   <b>
   <%# DataBinder.Eval(Container.DataItem,"au_id") %>
   </b>
   <br>
   <!-- 子Repeater开始 -->
   <asp:repeater id="childRepeater" runat="server"
   datasource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows("myrelation") %>'>
   <itemtemplate>
   <%# DataBinder.Eval(Container.DataItem, "[\"title_id\"]")%>
   <br>
   </itemtemplate>
   </asp:repeater>
   <!-- 子Repeater结束 -->
   </itemtemplate>
  </asp:repeater>
  <!-- 父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 eMeng
  {
  /// <summary>
  /// NestedRepeater 的摘要说明。
  /// 本文介绍如何利用Repeater控件显示主-从关系的表格
  /// 原文参见:
  /// http://support.microsoft.com/default.aspx?scid=kb;en-us;306154
  /// </summary>
  public class NestedRepeater : System.Web.UI.Page
  {
  protected System.Web.UI.WebControls.Repeater parentRepeater;
  
  public void Page_Load(object sender, EventArgs e)
  {
   // 为Authors表创建 Connection 和 DataAdapter
   string cnnString = @"server=(local)\NetSDK;database=pubs; Integrated Security=SSPI;";
   SqlConnection cnn = new SqlConnection(cnnString);
   SqlDataAdapter cmd1 = new SqlDataAdapter("select * from authors",cnn);
  
   //创建填充 DataSet.
   DataSet ds = new DataSet();
   cmd1.Fill(ds,"authors");
  
   // 为Titles表创建 DataAdapter
   SqlDataAdapter cmd2 = new SqlDataAdapter("select * from titleauthor",cnn);
   cmd2.Fill(ds,"titles");
  
   // 创建 Authors 表和 Titles 表之间的关系.
   ds.Relations.Add("myrelation",
   ds.Tables["authors"].Columns["au_id"],
   ds.Tables["titles"].Columns["au_id"]);
  
   // 绑定Authors到父Repeater
   parentRepeater.DataSource = ds.Tables["authors"];
   Page.DataBind();
  
   cnn.Close();
   cnn.Dispose();
  }
  private void Page_Init(object sender, EventArgs e)
  {
   InitializeComponent();
  }
  private void InitializeComponent()
  {
   this.Load += new System.EventHandler(this.Page_Load);
  }
  public NestedRepeater()
  {
   Page.Init += new System.EventHandler(Page_Init);
  }
  }
  }
  
  
    做人要厚道,请注明转自chinazhan中国站长(www.ChinaZhan.com)。