现在的位置: 首页 > 综合 > 正文

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

2013年10月11日 ⁄ 综合 ⁄ 共 2024字 ⁄ 字号 评论关闭

NestedRepeater.aspx

&lt;%@ Import Namespace="System.Data" %&gt;<br /> &lt;%@ Page language="c#" Codebehind="NestedRepeater.aspx.cs"<br /> AutoEventWireup="false" Inherits="eMeng.NestedRepeater" %&gt;<br /> &lt;HTML&gt;<br /> &lt;body&gt;<br /> &lt;form runat="server"&gt;<br /> &lt;!-- 父Repeater开始 --&gt;<br /> &lt;asp:repeater id="parentRepeater" runat="server"&gt;<br /> &lt;itemtemplate&gt;<br /> &lt;b&gt;<br /> &lt;%# DataBinder.Eval(Container.DataItem,"au_id") %&gt;<br /> &lt;/b&gt;<br /> &lt;br&gt;<br /> &lt;!-- 子Repeater开始 --&gt;<br /> &lt;asp:repeater id="childRepeater" runat="server"<br /> datasource='&lt;%# ((DataRowView)Container.DataItem).Row.GetChildRows("myrelation") %&gt;'&gt;<br /> &lt;itemtemplate&gt;<br /> &lt;%# DataBinder.Eval(Container.DataItem, "[/"title_id/"]")%&gt;<br /> &lt;br&gt;<br /> &lt;/itemtemplate&gt;<br /> &lt;/asp:repeater&gt;<br /> &lt;!-- 子Repeater结束 --&gt;<br /> &lt;/itemtemplate&gt;<br /> &lt;/asp:repeater&gt;<br /> &lt;!-- 父Repeater结束 --&gt;<br /> &lt;/form&gt;<br /> &lt;/body&gt;<br /> &lt;/HTML&gt;<br />

NestedRepeater.aspx.cs

using System;<br /> using System.Data;<br /> using System.Data.SqlClient;<br /> using System.Web;<br /> using System.Web.SessionState;<br /> using System.Web.UI;<br /> using System.Web.UI.WebControls;<br /> namespace eMeng<br /> {<br /> /// &lt;summary&gt;<br /> /// NestedRepeater 的摘要说明。<br /> /// 本文介绍如何利用Repeater控件显示主-从关系的表格<br /> /// 原文参见:<br /> /// http://support.microsoft.com/default.aspx?scid=kb;en-us;306154<br /> /// &lt;/summary&gt;<br /> public class NestedRepeater : System.Web.UI.Page<br /> {<br /> protected System.Web.UI.WebControls.Repeater parentRepeater;<br /> public void Page_Load(object sender, EventArgs e)<br /> {<br /> // 为Authors表创建 Connection 和 DataAdapter<br /> string cnnString = @"server=(local)/NetSDK;database=pubs; Integrated Security=SSPI;";<br /> SqlConnection cnn = new SqlConnection(cnnString);<br /> SqlDataAdapter cmd1 = new SqlDataAdapter("select * from authors",cnn);<br /> //创建填充 DataSet.<br /> DataSet ds = new DataSet();<br /> cmd1.Fill(ds,"authors");<br /> // 为Titles表创建 DataAdapter<br /> SqlDataAdapter cmd2 = new SqlDataAdapter("select * from titleauthor",cnn);<br /> cmd2.Fill(ds,"titles");<br /> // 创建 Authors 表和 Titles 表之间的关系.<br /> ds.Relations.Add("myrelation",<br /> ds.Tables["authors"].Columns["au_id"],<br /> ds.Tables["titles"].Columns["au_id"]);<br /> // 绑定Authors到父Repeater<br /> parentRepeater.DataSource = ds.Tables["authors"];<br /> Page.DataBind();<br /> cnn.Close();<br /> cnn.Dispose();<br /> }<br /> private void Page_Init(object sender, EventArgs e)<br /> {<br /> InitializeComponent();<br /> }<br /> private void InitializeComponent()<br /> {<br /> this.Load += new System.EventHandler(this.Page_Load);<br /> }<br /> public NestedRepeater()<br /> {<br /> Page.Init += new System.EventHandler(Page_Init);<br /> }<br /> }<br /> }<br />

抱歉!评论已关闭.