-------------master_Detail2.aspx
<%@ Import Namespace="System.Data" %>
<%@ Page language="c#" Codebehind="master_Detail2.aspx.cs" AutoEventWireup="false" Inherits="常用界面.master_Detail2" %>
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.0 Transitional//EN" >
<HTML>
<HEAD>
<title>master_Detail2</title>
<meta name="GENERATOR" Content="Microsoft Visual Studio .NET 7.1">
<meta name="CODE_LANGUAGE" Content="C#">
<meta name="vs_defaultClientScript" content="JavaScript">
<meta name="vs_targetSchema" content="http://schemas.microsoft.com/intellisense/ie5">
<style>
.arrL { FONT-FAMILY: Marlett;width:20px; }
.title { FONT-SIZE: 12px; COLOR: black; FONT-FAMILY: @黑体 @宋体 Arial; TEXT-ALIGN: center; TEXT-DECORATION: none }
.tit { FONT: caption; COLOR: black; TEXT-DECORATION: none;z-index:1;}
.titr { FONT: caption; COLOR: black; TEXT-ALIGN: right; TEXT-DECORATION: none;z-index:1; }
.titl { FONT: statusbar; COLOR: black; TEXT-ALIGN: left; TEXT-DECORATION: none;z-index:1;}
</style>
<script language="javascript">
function  hideAll()
{
  var opc=document.getElementById("mGrid");
  var dvArr=opc.getElementsByTagName("DIV");
  var btArr=opc.getElementsByTagName("BUTTON");
  var len=dvArr.length;
  for(var i=0;i<len;i++)
  {
     dvArr[i].innerText='4';
     btArr[i].style.display='none';
  }
}
function sh(bt,dv)
{
var mainTab=document.getElementById("mGrid");
var str=mainTab.style.width;
var scw=document.body.clientWidth -35 ;
if(bt.innerText=='4')
    {
        bt.innerText='6';
        var btnArs=mainTab.getElementsByTagName ("BUTTON");
        var i=0;
        for(i=0;i<btnArs.length;i++)
        {
            if(btnArs[i].id!=bt.id)
            {
                btnArs[i].innerText='4';
            }
        }
        
    }
    else
    {
       bt.innerText='4';
    }
  dv.style.display=dv.style.display=='none'?'block':'none';
  dv.style.width=scw;
  var opc=document.getElementById("mGrid");
  var dvArr=opc.getElementsByTagName("DIV");
  var len=dvArr.length;
  // alert(len);
  var index=0;
  for(index=0;index<len;index++)
  {
     var dvID=dvArr[index].id;
    
     if(dvID!=dv.id)
     {
      var dvhs=document.getElementById(dvID);
      dvhs.style.display='none';
     }
  }
}
</script>
</HEAD>
<body MS_POSITIONING="GridLayout" style="MARGIN: 0px">
<form id="Form1" method="post" runat="server">
<FONT face="宋体">
<table width="100%" cellpadding="1" cellspacing="3" border="1" frame="border" bgcolor="#ff99ff"
id="mTab">
<tr>
<td>
<asp:DataGrid id="mGrid" runat="server" Width="100%" AutoGenerateColumns="False">
<ItemStyle CssClass="titl"></ItemStyle>
<HeaderStyle CssClass="tit"></HeaderStyle>
<Columns>
<asp:TemplateColumn>
<ItemTemplate>
<button  id='btn<%# DataBinder.Eval(Container.DataItem,"EmployeeID")%>' class=arrL onclick="sh(btn<%# DataBinder.Eval(Container.DataItem,"EmployeeID")%>,dv<%# DataBinder.Eval(Container.DataItem,"EmployeeID")%>)">4</button>
<div id='dv<%# DataBinder.Eval(Container.DataItem,"EmployeeID")%>'  style="position:absolute;z-index=3;display:none;float=left;width=600px" >
<!-- 子Repeater开始 -->
<asp:repeater id="childRepeater" runat="server" DataSource='<%# ((DataRowView)Container.DataItem).Row.GetChildRows("Emp_Ord") %>'>
<itemtemplate>
<table cellpadding="1" cellspacing="3" border="1" frame="border" bgcolor=#ff99ff width="100%">
<tr>
<!--OrderID,EmployeeID,OrderDate,ShipName-->
<td width="30%" class=titl>
<%# DataBinder.Eval(Container.DataItem,"[\"OrderID\"]")%>
</td>
<td width="30%" class=titl>
<%# DataBinder.Eval(Container.DataItem,"[\"OrderDate\"]")%>
</td>
<td width="40%" class=titl >
<%# DataBinder.Eval(Container.DataItem,"[\"shipName\"]")%>
</td>
</tr>
</table>
</itemtemplate>
</asp:repeater>
<!-- 子Repeater结束 -->
</div>
</ItemTemplate>
</asp:TemplateColumn>
<asp:BoundColumn DataField="firstName" HeaderText="名"></asp:BoundColumn>
<asp:BoundColumn DataField="lastName" HeaderText="姓"></asp:BoundColumn>
<asp:BoundColumn DataField="Address" HeaderText="地址"></asp:BoundColumn>
<asp:BoundColumn DataField="City" HeaderText="城市"></asp:BoundColumn>
</Columns>
</asp:DataGrid>
</td>
</tr>

</table>
</FONT>
</form>
</body>
</HTML>
-------------master_Detail2.aspx.cs
using System;
using System.Collections;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Web;
using System.Web.SessionState;
using System.Web.UI;
using System.Web.UI.WebControls;
using System.Web.UI.HtmlControls;
using System.Data .SqlClient ;namespace 常用界面
{
/// <summary>
/// master_Detail2 的摘要说明。
/// </summary>
public class master_Detail2 : System.Web.UI.Page
{
protected System.Data.SqlClient.SqlConnection sqlConnection1;
protected System.Web.UI.WebControls.Repeater childRepeater;
protected System.Web.UI.WebControls.DataGrid mGrid;

private void Page_Load(object sender, System.EventArgs e)
{
// 在此处放置用户代码以初始化页面
if(!Page.IsPostBack)
{
this.repeaterBind(true);
//this.mGrid.Attributes["onclick"]="hideAll()";
}
} private void  repeaterBind(bool fr)
{
if(fr)
{
SqlCommand cmd=new SqlCommand("select EmployeeID,lastName,firstName,Address,City from  employees;select OrderID,EmployeeID,OrderDate,ShipName from  orders",this.sqlConnection1 );
SqlDataAdapter da=new SqlDataAdapter(cmd);
da.TableMappings.Add("Table","Emp");
da.TableMappings.Add("Table1","Ord");
DataSet ds=new DataSet("M_S");
da.Fill(ds);
ds.Relations.Add("Emp_Ord",ds.Tables["Emp"].Columns["EmployeeID"],ds.Tables["Ord"].Columns["EmployeeID"]);
    this.mGrid.DataSource=ds.Tables["Emp"].DefaultView ;
this.mGrid .DataBind ();
 
}
else
{
 DataSet dc=Cache["MD_Emp_Ord"] as DataSet ;
 this.mGrid.DataSource=dc.Tables["Emp"].DefaultView ;
 this.mGrid .DataBind ();
 
}
}
private void DataGrid1_ItemDataBound(object sender, System.Web.UI.WebControls.DataGridItemEventArgs e)
{
if(e.Item.ItemType==ListItemType.Item)
{
foreach(TableCell cl in e.Item.Cells )
{
cl.Attributes["valign"]="top";
}
}
}
#region Web 窗体设计器生成的代码
override protected void OnInit(EventArgs e)
{
//
// CODEGEN: 该调用是 ASP.NET Web 窗体设计器所必需的。
//
InitializeComponent();
base.OnInit(e);
}

/// <summary>
/// 设计器支持所需的方法 - 不要使用代码编辑器修改
/// 此方法的内容。
/// </summary>
private void InitializeComponent()
{    
this.sqlConnection1 = new System.Data.SqlClient.SqlConnection();
// 
// sqlConnection1
// 
this.sqlConnection1.ConnectionString = "workstation id=DHZ;packet size=4096;integrated security=SSPI;data source=DHZ;pers" +
"ist security info=False;initial catalog=Northwind";
this.Load += new System.EventHandler(this.Page_Load);
this.mGrid.ItemDataBound+=new DataGridItemEventHandler(this.DataGrid1_ItemDataBound ); }
#endregion
}
}
------------------------哪位给Repeater控件加个分页,过滤功能

解决方案 »

  1.   

    分页用这个:http://www.webdiyer.com
      

  2.   

    string database_path = Server.MapPath("RepeaterPaging.mdb");
    OleDbConnection objConn=new OleDbConnection("Provider=Microsoft.Jet.OLEDB.4.0; Data Source =" + database_path);
    OleDbDataAdapter objCommand=new OleDbDataAdapter("select * from Products",objConn);
    DataSet ds=new DataSet();
    objCommand.Fill(ds); PagedDataSource objPds = new PagedDataSource();
    objPds.DataSource = ds.Tables[0].DefaultView;
    objPds.AllowPaging = true;
    objPds.PageSize = 5;
    int CurPage;
    if (Request.QueryString["Page"] != null)
    CurPage=Convert.ToInt32(Request.QueryString["Page"]);
    else
    CurPage=1; objPds.CurrentPageIndex = CurPage-1; 
    lblCurrentPage.Text = "Page: " + CurPage.ToString(); if (!objPds.IsFirstPage)
    lnkPrev.NavigateUrl=Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage-1); if (!objPds.IsLastPage)
    lnkNext.NavigateUrl=Request.CurrentExecutionFilePath+ "?Page=" + Convert.ToString(CurPage+1); //Repeater1.DataSource=objPds;
    //Repeater1.DataBind();
    Repeater1.Visible = false;
    DataList1.RepeatColumns = 5;
    DataList1.DataSource = objPds;
    DataList1.DataBind();
    DataList1.Visible = true;