关于对孟子E章《利用Repeater控件显示主-从关系数据表》的一点补充

原文参看 利用Repeater控件显示主-从关系数据表
有的网友在问怎样显示子表的前N条记录,下面是我的做法:
C#
aspx文件:

![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)```

...@ Page language="c#" Codebehind="WebForm13.aspx.cs" AutoEventWireup="false" Inherits="test1.WebForm13"

1    ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)```
2...@ Import Namespace="System.Data" 
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)

 1<html>
 2    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)    <head>
 3    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)        <title>WebForm13</title>
 4    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)        <meta content="Microsoft Visual Studio .NET 7.1" name="GENERATOR"/>
 5    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)        <meta content="C#" name="CODE_LANGUAGE"/>
 6    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)        <meta content="JavaScript" name="vs_defaultClientScript"/>
 7    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)        <meta content="http://schemas.microsoft.com/intellisense/ie5" name="vs_targetSchema"/>
 8    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)    </head>
 9    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)    <body ms_positioning="GridLayout">
10    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)        <form id="Form1" method="post" runat="server">
11    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)            <!-- 父Repeater开始 -->
12    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)            <asp:repeater id="parentRepeater" runat="server">
13    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)                <itemtemplate>
14    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)                    <b>
15    ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)                        ```
16...# DataBinder.Eval(Container.DataItem,"au_id") 
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)                    </b>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)                    <br/>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)                    <!-- 子Repeater开始 -->
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)                    <asp:repeater datasource="```

getrow((DataRowView)Container.DataItem,1)

1    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)                        <itemtemplate>
2    ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)                            ```
3...# DataBinder.Eval(Container.DataItem, "[\"title_id\"]")
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)                            <br/>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)                        </itemtemplate>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)                    </asp:repeater>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)                    <!-- 子Repeater结束 -->
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)                </itemtemplate>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)            </asp:repeater>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)            <!-- 父Repeater结束 -->
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)        </form>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)    </body>
![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)</html>
 1![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)  
 2    cs文件:  
 3    
 4    
 5    
 6    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)using System;
 7    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)using System.Collections;
 8    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)using System.ComponentModel;
 9    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)using System.Data;
10    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)using System.Drawing;
11    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)using System.Web;
12    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)using System.Web.SessionState;
13    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)using System.Web.UI;
14    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)using System.Web.UI.WebControls;
15    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)using System.Web.UI.HtmlControls;
16    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)using System.Data.SqlClient;
17    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
18    ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)namespace test1
19    ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockStart.gif)![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedBlock.gif)...{
20    ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)    /**////
![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) /// WebForm13 的摘要说明。 ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif) /// ``` ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) public class WebForm13 : System.Web.UI.Page ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif) ...{ ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) protected System.Web.UI.WebControls.Repeater parentRepeater; ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) private void Page_Load(object sender, System.EventArgs e) ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif) ...{ ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) // 在此处放置用户代码以初始化页面 ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) string cnnString = @"server=(local);database=pubs;uid=sa;pwd=sa"; ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) SqlConnection cnn = new SqlConnection(cnnString); ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) SqlDataAdapter cmd1 = new SqlDataAdapter("select * from authors",cnn); ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) //创建填充 DataSet. ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) DataSet ds = new DataSet(); ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) cmd1.Fill(ds,"authors"); ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) // 为Titles表创建 DataAdapter ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) SqlDataAdapter cmd2 = new SqlDataAdapter("select * from titleauthor",cnn); ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) cmd2.Fill(ds,"titles"); ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) // 创建 Authors 表和 Titles 表之间的关系. ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) ds.Relations.Add("myrelation", ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) ds.Tables["authors"].Columns["au_id"], ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) ds.Tables["titles"].Columns["au_id"]); ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) // 绑定Authors到父Repeater ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) parentRepeater.DataSource = ds.Tables["authors"]; ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) Page.DataBind(); ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) cnn.Close(); ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) cnn.Dispose(); ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif) } ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) ![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif)![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif) Web 窗体设计器生成的代码#region Web 窗体设计器生成的代码 ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) override protected void OnInit(EventArgs e) ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif) ...{ ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) // ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) // CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。 ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) // ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) InitializeComponent(); ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) base.OnInit(e); ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif) } ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif) /**//// ``` ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) /// 设计器支持所需的方法 - 不要使用代码编辑器修改 ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) /// 此方法的内容。 ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif) /// ``` ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) private void InitializeComponent() ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif) ...{ ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) //this.parentRepeater.DataBinding += new System.EventHandler(this.parentRepeater_DataBinding); ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) this.Load += new System.EventHandler(this.Page_Load); ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif) } ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif) #endregion ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) protected DataRow[] getrow(DataRowView drv,int num) ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif) ...{ ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) DataRow[] dr=drv.Row.GetChildRows("myrelation"); ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) if(dr.Length>num) ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif) ...{ ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) DataRow[] drtemp=new DataRow[num]; ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) for(int i=0;i<num;i++) ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockStart.gif)![](http://www.cnblogs.com/Images/OutliningIndicators/ContractedSubBlock.gif) ...{ ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) drtemp[i]=dr[i]; ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif) } ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) return drtemp; ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif) } ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) else ![](http://www.cnblogs.com/Images/OutliningIndicators/InBlock.gif) return drv.Row.GetChildRows("myrelation"); ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif) } ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedSubBlockEnd.gif) } ![](http://www.cnblogs.com/Images/OutliningIndicators/ExpandedBlockEnd.gif)} ![](http://www.cnblogs.com/Images/OutliningIndicators/None.gif)
Published At
Categories with Web编程
Tagged with
comments powered by Disqus