HTML代码:
<%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml" >
<head runat="server">
<title>Repeater控件实现主细表</title>
</head>
<body>
<form id="form1" runat="server">
<div align="center">
<asp:repeater id="parentRepeater" runat="server">
<itemtemplate>
<b>员工ID:
<%# DataBinder.Eval(Container.DataItem, "UserID")%>
</b><br />
<asp:repeater id="childRepeater" runat="server"
DataSource='<%#((System.Data.DataRowView)Container.DataItem).CreateChildView("tableRelation") %>'>
<itemtemplate>
<table style="width: 416px; height: 134px;" cellpadding="0" cellspacing="0" border="1">
<tr>
<td style="width: 84px">
<asp:Label ID="Label1" runat="server" Font-Size="9pt" Text="ID:" Width="44px"></asp:Label></td>
<td style="width: 95px">
<asp:Label ID="labUserID" runat="server" Font-Size="9pt" Text='<%# DataBinder.Eval(Container.DataItem,"UserID") %>'></asp:Label></td>
<td style="width: 99px">
<asp:Label ID="Label3" runat="server" Font-Size="9pt" Text="登录名:" Width="46px"></asp:Label></td>
<td style="width: 99px">
<asp:Label ID="labName" runat="server" Font-Size="9pt" Text='<%# DataBinder.Eval(Container.DataItem,"UserLoginName") %>'></asp:Label></td>
</tr>
<tr>
<td style="width: 84px;">
<asp:Label ID="Label5" runat="server" Font-Size="9pt" Text="性别:" Width="42px"></asp:Label></td>
<td style="width: 95px;">
<asp:Label ID="labSex" runat="server" Font-Size="9pt" Text='<%# DataBinder.Eval(Container.DataItem,"UserSex") %>'></asp:Label></td>
<td style="width: 99px;">
<asp:Label ID="Label9" runat="server" Font-Size="9pt" Text="电话:" Width="30px"></asp:Label></td>
<td style="width: 99px;">
<asp:Label ID="labTel" runat="server" Font-Size="9pt" Text='<%# DataBinder.Eval(Container.DataItem,"UserTel") %>'></asp:Label></td>
</tr>
<tr>
<td style="width: 84px">
<asp:Label ID="Label11" runat="server" Font-Size="9pt" Text="Email:" Width="39px"></asp:Label></td>
<td style="width: 95px">
<asp:Label ID="labEmail" runat="server" Font-Size="9pt" Text='<%# DataBinder.Eval(Container.DataItem,"UserEmail") %>'></asp:Label></td>
<td style="width: 99px">
<asp:Label ID="Label13" runat="server" Font-Size="9pt" Text="住址:" Width="36px"></asp:Label></td>
<td style="width: 99px">
<asp:Label ID="labAddress" runat="server" Font-Size="9pt" Text='<%# DataBinder.Eval(Container.DataItem,"UserAddress") %>'></asp:Label></td>
</tr>
<tr>
<td style="width: 84px">
<asp:Label ID="Label15" runat="server" Font-Size="9pt" Text="邮编:" Width="34px"></asp:Label></td>
<td style="width: 95px">
<asp:Label ID="labPostCode" runat="server" Font-Size="9pt" Text='<%# DataBinder.Eval(Container.DataItem,"UserPostCode") %>'></asp:Label></td>
<td style="width: 99px">
<asp:Label ID="Label19" runat="server" Font-Size="9pt" Text="QQ:" Width="32px"></asp:Label></td>
<td style="width: 99px">
<asp:Label ID="labQQ" runat="server" Font-Size="9pt" Text='<%# DataBinder.Eval(Container.DataItem,"UserQQ") %>'></asp:Label></td>
</tr>
<tr>
<td style="width: 84px">
<asp:Label ID="Label23" runat="server" Font-Size="9pt" Text="工作日期:" Width="56px"></asp:Label></td>
<td colspan="3" style="text-align: left">
<asp:Label ID="labDate" runat="server" Font-Size="9pt" Text='<%# DataBinder.Eval(Container.DataItem,"UserDate") %>' Width="115px"></asp:Label></td>
</tr>
</table>
</itemtemplate>
</asp:repeater>
</itemtemplate>
</asp:repeater>
</div>
</form>
</body>
</html>
CS代码:
using System;
using System.Data;
using System.Configuration;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Web.UI.HtmlControls;
using System.Data.SqlClient;
public partial class _Default : System.Web.UI.Page
{
SqlConnection sqlcon;
string strCon = "Data Source=(local);Database=db_04;Uid=sa;Pwd=";
protected void Page_Load(object sender, EventArgs e)
{
string sqlstr = "select top 3* from tb_EmpID select top 3a.*,b.UserID from tb_Employee as a inner join tb_EmpID as b on a.UserID=b.UserID";
sqlcon = new SqlConnection(strCon);
SqlDataAdapter myda = new SqlDataAdapter(sqlstr, sqlcon);
DataSet myds = new DataSet();
sqlcon.Open();
myda.Fill(myds);
myds.Tables[0].TableName = "tb_EmpID";
myds.Tables[1].TableName = "tb_Employee";
DataColumn Parent = myds.Tables["tb_EmpID"].Columns["UserID"];
DataColumn Child = myds.Tables["tb_Employee"].Columns["UserID"];
DataRelation tableRelation = new DataRelation("tableRelation", Parent, Child, false);
myds.Relations.Add(tableRelation);
parentRepeater.DataSource = myds.Tables["tb_EmpID"].DefaultView;
parentRepeater.DataBind();
sqlcon.Close();
}
}
数据库:
CREATE TABLE [dbo].[tb_EmpID] (
[UserID] [bigint] NOT NULL ,
[UserLoginName] [char] (10) COLLATE Chinese_PRC_CI_AS NULL
) ON [PRIMARY]
CREATE TABLE [dbo].[tb_Employee] (
[UserID] [bigint] NOT NULL ,
[UserLoginName] [char] (10) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[UserSex] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[UserPwd] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[UserName] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[UserQuePwd] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[UserAnsPwd] [varchar] (50) COLLATE Chinese_PRC_CI_AS NOT NULL ,
[UserTel] [char] (10) COLLATE Chinese_PRC_CI_AS NULL ,
[UserEmail] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[UserAddress] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[UserPostCode] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[UserQQ] [varchar] (50) COLLATE Chinese_PRC_CI_AS NULL ,
[UserDate] [datetime] NULL
) ON [PRIMARY]