Repeater分页的实现

ASP.NET(C#) Repeater分页的实现 恩,试过,很不错哦~~2009年07月09日 星期四 下午 05:52第一种方式:

数据库连接代码:
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;
using System.Data.Sql;

public partial class _Default : System.Web.UI.Page
{
??? private void con()
??? {
??????? string connstring = ConfigurationManager.ConnectionStrings[“AdventureWorksDWConnectionString”].ConnectionString;
??????? SqlConnection con = new SqlConnection(connstring);
??????? SqlConnection conn = new SqlConnection();
??????? DataSet ds = new DataSet();
??????? SqlDataAdapter sda = new SqlDataAdapter(“select * from FactSalesQuota”, con);
??????? sda.Fill(ds, “name”);
??????? SqlDataAdapter sda2 = new SqlDataAdapter(“select * from ProspectiveBuyer”, con);
??????? sda2.Fill(ds, “title”);
??????? PagedDataSource pds = new PagedDataSource();
??????? pds.DataSource = ds.Tables[“name”].DefaultView;
??????? //PagedDataSource aa = new PagedDataSource();
??????? pds.AllowPaging = true;//允许分页
??????? pds.PageSize = 8;//单页显示项数
??????? int CurPage;
??????? if (Request.QueryString[“Page”] != null)
??????????? CurPage = Convert.ToInt32(Request.QueryString[“Page”]);
??????? else
??????????? CurPage = 1;
??????? pds.CurrentPageIndex = CurPage – 1;
??????? int Count = pds.PageCount;

??????? lblCurrentPage.Text = “当前页:” + CurPage.ToString();
??????? labPage.Text = Count.ToString();

??????? if (!pds.IsFirstPage)
??????? {
??????????? this.first.NavigateUrl = Request.CurrentExecutionFilePath + “?Page=1”;
??????????? this.last.NavigateUrl = Request.CurrentExecutionFilePath + “?Page=” + Convert.ToString(Count – 1); ;
??????????? up.NavigateUrl = Request.CurrentExecutionFilePath + “?Page=” + Convert.ToString(CurPage – 1);
??????? }
??????? else
??????? {
??????????? this.first.Visible = false ;
??????????? this.last.Visible = false ;

??????? }

??????? if (!pds.IsLastPage)
??????? {
??????????

??????????? next.NavigateUrl = Request.CurrentExecutionFilePath + “?Page=” + Convert.ToString(CurPage + 1);
??????? }
??????? else
??????? {
??????????? this.first.Visible = false;
??????????? this.last.Visible = false;

??????? }

??????? Repeater1.DataSource = pds ;
??????? Repeater1.DataBind();

??? }

??? protected void Page_Load(object sender, EventArgs e)
??? {
??????? if (!IsPostBack)
??????? {
??????????? con();
??????????? this.first.Visible = true;
??????????? this.last.Visible = true;
??????????? //this.Repeater1.DataSource = pds();
??????????? //this.Repeater1.DataBind();

??????? }

??? }
}

aspx文件代码:
<table>
??? <tr ><td align =”left” >hehe</td></tr>
???
??? <tr ><td>??
?????? <asp:Repeater ID=”Repeater1″ runat=”server” >
???????
??????? <HeaderTemplate ><table><tr><td>头模板</td></tr></HeaderTemplate>
??????? <ItemTemplate ><tr><td ><font color=”red” > <%#Eval(“timekey”)%></font></td></tr></ItemTemplate>
??????? <AlternatingItemTemplate ><tr><td > <a href =’Default.aspx?id=<%#”databaselogid” %>’><%#Eval(“SalesAmountQuota”)%></a></td></tr></AlternatingItemTemplate>
??????? <FooterTemplate ><tr><td>尾模板</td></tr></table></FooterTemplate>
??????? </asp:Repeater>
??????? </td> </tr>
???
???
<tr> <td>
???? <asp:HyperLink ID=”first” runat=”server”>首页</asp:HyperLink>
???? <asp:HyperLink ID=”next” runat=”server”>下一页</asp:HyperLink>
???? <asp:HyperLink ID=”up” runat=”server”>上一页</asp:HyperLink>
???? <asp:HyperLink ID=”last” runat=”server”>末页</asp:HyperLink>
???? </td></tr>
???????????
??????????? <tr><td>当前页为:<asp:Label ID=”lblCurrentPage” runat=”server”
??????????????????? Text=”Label”></asp:Label>
???????????????

??????????????? 共<asp:Label ID=”labPage” runat=”server” Text=”Label”></asp:Label>
??????????????? 页</td></tr>
???????????
??? </table>
第二种方式:
using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;

public partial class databind : System.Web.UI.Page
{
??
??? protected void Page_Load(object sender, EventArgs e)
??? {
??????? if (!IsPostBack)
??????? {
??????????? num.Text = “1”;
??????????? repdatabind();
??????? }
??? }
??? public void repdatabind()
??? {
??????? string connstring = ConfigurationManager.ConnectionStrings[“AdventureWorksDWConnectionString”].ConnectionString;
??????? SqlConnection con = new SqlConnection(connstring);
??????? SqlConnection conn = new SqlConnection();
??????? DataSet ds = new DataSet();
??????? SqlDataAdapter sda = new SqlDataAdapter(“select * from DimProduct”, con);
??????? sda.Fill(ds, “name”);
??????? PagedDataSource pds = new PagedDataSource();
??????? pds.DataSource = ds.Tables[“name”].DefaultView;
??????? pds.AllowPaging = true;//允许分页
??????? pds.PageSize = 8;//单页显示项数

??????? int curpage = Convert.ToInt32(num.Text);
??????? this.BtnDown.Enabled = true;
??????? this.BtnUp.Enabled = true;
??????? pds.CurrentPageIndex = curpage – 1;
??????? if (curpage == 1)
??????? {
??????????? this.BtnUp.Enabled = false;
??????? }
??????? if (curpage == pds.PageCount)
??????? {
??????????? this.BtnDown.Enabled = false;
??????? }
??????? this.Repeater1.DataSource = pds;
??????? this.Repeater1.DataBind();
??? }

??? protected void BtnUp_Click(object sender, EventArgs e)
??? {
??????? this.num.Text =Convert.ToString ( Convert.ToInt32(num.Text)- 1) ;
??????? repdatabind();
??? }
??? protected void BtnDown_Click(object sender, EventArgs e)
??? {
??????? this.num.Text = Convert.ToString(Convert.ToInt32(num.Text)+ 1) ;
??????? repdatabind();
??? }
}
aspx代码:
<%@ Page Language=”C#” AutoEventWireup=”true” CodeFile=”databind.aspx.cs” Inherits=”databind” %>

<!DOCTYPE html PUBLIC “-//W3C//DTD XHTML 1.0 Transitional//EN” “<a href=”http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd”>http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd</a>”>

<html xmlns=”<a href=”http://www.w3.org/1999/xhtml”>http://www.w3.org/1999/xhtml</a>”>
<head runat=”server”>
??? <title>无标题页</title>
</head>
<body>
??? <form id=”form1″ runat=”server”>
??? <div>
???
??????? <asp:Panel ID=”Panel1″ runat=”server” Height=”173px”>
??????????? <asp:Repeater ID=”Repeater1″ runat=”server”><HeaderTemplate ><table border onmousedown=”1″ ><tr><td >头模板</td></tr></HeaderTemplate><ItemTemplate ><tr><td>序号:<%# Eval(“ProductKey”) %></td></tr><tr><td>编码:<%# Eval(“ProductAlternateKey”) %></td></tr></ItemTemplate><FooterTemplate ><tr><td>脚模板</td></tr></table></FooterTemplate>
??????????? </asp:Repeater>
??????????? 当前页:<asp:Label ID=”num” runat=”server”></asp:Label>
???????????

??????????? <asp:Button ID=”BtnUp” runat=”server” onclick=”BtnUp_Click” Text=”上一页” />
??????????? <asp:Button ID=”BtnDown” runat=”server” onclick=”BtnDown_Click” Text=”下一页” />
??????? </asp:Panel>
???????

???????

???
??? </div>
??? </form>
</body>
</html>
转自:Repeater分页的实现

其实,本人觉得,还是第二种看起来比较简单。
话说,因为这只是个小例子,so,鄙人没有把我的项目拿出来展示,但是!连接数据库没有这么连的啊~~太不安全了~~,还有。。。百度文章限字啊~~太抠门了吧~~

using System;
using System.Collections;
using System.Configuration;
using System.Data;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;

namespace WebApplication1
{
??? public partial class _Default : System.Web.UI.Page
??? {
??????? protected void Page_Load(object sender, EventArgs e)
??????? {
??????????? if (!IsPostBack)
??????????? {
??????????????? this.labPage.Text = “1”;
??????????????? this.contrlRepeater();
??????????? }
??????? }
??????? //Repeater分页控制显示方法
??????? public void contrlRepeater()
??????? {
??????????? DataSet ds = Portfolio.GetHistory(23);
??????????? PagedDataSource pds = new PagedDataSource();
??????????? pds.DataSource = ds.Tables[0].DefaultView;
??????????? pds.AllowPaging = true;
??????????? pds.PageSize = 2;
??????????? pds.CurrentPageIndex = Convert.ToInt32(this.labPage.Text) – 1;
??????????? rpPortfolioHistory.DataSource = pds;
??????????? LabCountPage.Text = pds.PageCount.ToString();
??????????? labPage.Text = (pds.CurrentPageIndex + 1).ToString();
??????????? this.lbtnpritPage.Enabled = true;
??????????? this.lbtnFirstPage.Enabled = true;
??????????? this.lbtnNextPage.Enabled = true;
??????????? this.lbtnDownPage.Enabled = true;
??????????? if (pds.CurrentPageIndex < 1)
??????????? {
??????????????? this.lbtnpritPage.Enabled = false;
??????????????? this.lbtnFirstPage.Enabled = false;
??????????? }
??????????? if (pds.CurrentPageIndex == pds.PageCount – 1)
??????????? {
??????????????? this.lbtnNextPage.Enabled = false;
??????????????? this.lbtnDownPage.Enabled = false;
??????????? }
??????????? rpPortfolioHistory.DataBind();
??????? }

??????? //获取指字符个数的字符
??????? public string cuts(string aa, int bb)
??????? {
??????????? if (aa.Length <= bb) { return aa; }
??????????? else { return aa.Substring(0, bb); }
??????? }
??????? protected void lbtnpritPage_Click(object sender, EventArgs e)
??????? {
??????????? this.labPage.Text = Convert.ToString(Convert.ToInt32(labPage.Text) – 1);
??????????? this.contrlRepeater();
??????? }
??????? protected void lbtnFirstPage_Click(object sender, EventArgs e)
??????? {
??????????? this.labPage.Text = “1”;
??????????? this.contrlRepeater();
??????? }
??????? protected void lbtnDownPage_Click(object sender, EventArgs e)
??????? {
??????????? this.labPage.Text = this.LabCountPage.Text;
??????????? this.contrlRepeater();
??????? }

??????? protected void lbtnNextPage_Click(object sender, EventArgs e)
??????? {
??????????? this.labPage.Text = Convert.ToString(Convert.ToInt32(labPage.Text) + 1);
??????????? this.contrlRepeater();
??????? }
??????? //protected void Page_Load(object sender, EventArgs e)
??????? //{
??????? //??? DataSet ds = Portfolio.GetHistory(23);
??????? //??? if (ds != null && ds.Tables[0] != null)
??????? //??? {
??????? //??????? rpPortfolioHistory.DataSource = ds.Tables[0];
??????? //??????? rpPortfolioHistory.DataBind();
??????? //??? }
??????? //}

??????? protected string FormatType(int TransactionType)
??????? {
??????????? if (TransactionType == 1)
??????????????? return “观察”;
??????????? else if (TransactionType == 2)
??????????????? return “申购”;
??????????? else if (TransactionType == 3)
??????????????? return “申购”;
??????????? else if (TransactionType == 4)
??????????????? return “赎回”;
??????????? else if (TransactionType == 5)
??????????????? return “买入”;
??????????? else if (TransactionType == 6)
??????????????? return “卖出”;
??????????? else if (TransactionType == 7)
??????????????? return “现金分红”;
??????????? else if (TransactionType == 8)
??????????????? return “拆分”;
??????????? else if (TransactionType == 9)
??????????????? return “红利再投资”;
??????????? else
??????????????? return “未知交易”;
??????? }
??? }
}

Portfolio.cs

using System;
using System.Data;
using System.Configuration;
using System.Linq;
using System.Web;
using System.Web.Security;
using System.Web.UI;
using System.Web.UI.HtmlControls;
using System.Web.UI.WebControls;
using System.Web.UI.WebControls.WebParts;
using System.Xml.Linq;
using System.Data.SqlClient;

namespace WebApplication1
{
??? public class Portfolio
??? {
??????? public static DataSet GetHistory(int portfolioid)
??????? {
??????????? SqlParameter[] parameters = {????????????????
??????????????????????????????????????????? new SqlParameter(“@PortfolioId”,SqlDbType.Int)
??????????????????????????????????????? };

??????????? parameters[0].Value = portfolioid;
??????????? return DbHelperSQL.RunProcedure(“sp_GetportfolioHistory”, parameters, “result”);
??????? }
??? }
}
Repeater控件分页

<%@ Page Language=”C#” %>
<%@ import namespace=”System.Data” %>
<%@ import namespace=”System.Data.OleDb” %>
<script language=”C#” runat=”server”>
public void Page_Load(Object src,EventArgs e) {
? OleDbConnection objConn=new OleDbConnection(“Provider=Microsoft.Jet.OLEDB.4.0; Data Source=” +
?? Server.MapPath(“../aspxWeb.mdb”));
? OleDbDataAdapter objCommand=new OleDbDataAdapter(“select * from Document”,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 = “当前页:” + 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();
}
</script>
<html>
<head>
<title>Repeater控件分页的例子</title>
<meta http-equiv=”Content-Type” content=”text/html; charset=gb2312″>
<style>
? P,TD,DIV,SPAN {font-size:9pt}
</style>
</head>
<body>
<form name=”form1″ method=”POST” runat=”server”>
<div style=”padding:5px;background-color:#dedede”>
<asp:label ID=”lblCurrentPage” runat=”server”></asp:label></td>
? <td>&nbsp;<asp:HyperLink id=”lnkPrev” runat=”server”>上一页</asp:HyperLink>
? <asp:HyperLink id=”lnkNext” runat=”server”>下一页</asp:HyperLink>&nbsp;
</div>
<hr size=”1″ color=”#000099″/>
<asp:Repeater ID=”Repeater1″ runat=”server”>
<Itemtemplate>
<div style=”padding:5px;background-color:#dedede”>
<%# DataBinder.Eval(Container.DataItem, “Title”) %>
</div>
</Itemtemplate>
</asp:Repeater>
</form>
</body>
</html>

一、预览效果

二、Web.config配置

1? <appSettings>
2??? <add key=”haikelasiConnectionString” value=”Data Source=.;Initial Catalog=haikelasi;Persist Security Info=True;User ID=sa;Password=123456″ />
3? </appSettings>

三、前台控件呈现部分

?1<asp:repeater id=”LeaveMessage” runat=”server” >
?2<ItemTemplate>
?3<table width=”100%” border=”0″ align=”center” cellpadding=”1″ cellspacing=”1″ bgcolor=”#D4D0C8″>
?4<tr>
?5<td width=”85%” bgcolor=”#FFFAFF”><div align=”left”><%#DataBinder.Eval(Container.DataItem, “sNewsTitle”)%></div></td>
?6<td width=”15%” bgcolor=”#FFFAFF” align=”left”><%#DataBinder.Eval(Container.DataItem, “dAddTime”)%></td>
?7</tr>
?8</table>
?9<hr size=”3px” width=”90%”/>
10</ItemTemplate>
11</asp:repeater>
12共有<asp:Literal ID=”RecordCount” runat=”server”></asp:Literal>条记录
13共有<asp:Literal ID=”PageCount” runat=”server”></asp:Literal>页
14当前第<asp:Literal ID=”Pageindex” runat=”server”></asp:Literal>页
15<asp:HyperLink ID=”FirstPage” runat=”server” Text=”首页”></asp:HyperLink>
16<asp:HyperLink ID=”PrevPage” runat=”server” Text=”上一页”></asp:HyperLink>
17<asp:HyperLink ID=”NextPage” runat=”server” Text=”下一页”></asp:HyperLink>
18<asp:HyperLink ID=”LastPaeg” runat=”server” Text=”尾页”></asp:HyperLink>
19跳转到<asp:Literal ID=”Literal1″ runat=”server”></asp:Literal>页
?

四、后置代码部分(CS代码)

? 1using System;
? 2using System.Data;
? 3using System.Configuration;
? 4using System.Collections;
? 5using System.Web;
? 6using System.Web.Security;
? 7using System.Web.UI;
? 8using System.Web.UI.WebControls;
? 9using System.Web.UI.WebControls.WebParts;
?10using System.Web.UI.HtmlControls;
?11using System.Data.SqlClient;
?12using System.Text;
?13
?14public partial class admin_LeaveMessages : System.Web.UI.Page
?15{
?16??? protected void Page_Load(object sender, EventArgs e)
?17??? {
?18??????? if (!Page.IsPostBack)
?19??????? {
?20??????????? NewsBind();
?21??????? }
?22??? }
?23??? private void NewsBind()//repeater分页并绑定
?24??? {
?25??????? string SqlStr = “select sNewsTitle,dAddTime from [News] order by dAddTime”;???????
?26??????? string connectionString = System.Configuration.ConfigurationManager.AppSettings[“haikelasiConnectionString”].ToString();
?27??????? SqlConnection conn = new SqlConnection(connectionString);
?28??????? conn.Open();
?29??????? SqlDataAdapter Adapter = new SqlDataAdapter(SqlStr, conn);
?30??????? DataSet ds = new DataSet();
?31??????? try
?32??????? {
?33??????????? Adapter.Fill(ds, “testTable”);
?34??????????? PagedDataSource objPage = new PagedDataSource();
?35??????????? objPage.DataSource=ds.Tables[“testTable”].DefaultView;
?36??????????? objPage.AllowPaging=true;
?37??????????? objPage.PageSize=3;
?38??????????? int CurPage;
?39??????????? if (Request.QueryString[“Page”] != null)
?40??????????? {
?41??????????????? CurPage = Convert.ToInt32(Request.QueryString[“page”]);
?42??????????? }
?43??????????? else
?44??????????? {
?45??????????????? CurPage = 1;
?46??????????? }
?47??????????? objPage.CurrentPageIndex = CurPage – 1;
?48??????????? LeaveMessage.DataSource=objPage;//这里更改控件名称
?49??????????? LeaveMessage.DataBind();//这里更改控件名称
?50??????????? RecordCount.Text = objPage.DataSourceCount.ToString();
?51??????????? PageCount.Text = objPage.PageCount.ToString();
?52??????????? Pageindex.Text = CurPage.ToString();
?53??????????? Literal1.Text = PageList(objPage.PageCount, CurPage);
?54??????????? //Literal1.Text = PageList(objPage.PageCount, Pageindex, L_Manage); //带参数的:LManage为参数
?55
?56
?57??????????? FirstPage.NavigateUrl = Request.CurrentExecutionFilePath + “?page=1”;
?58??????????? PrevPage.NavigateUrl = Request.CurrentExecutionFilePath + “?page=” + (CurPage – 1);
?59??????????? NextPage.NavigateUrl = Request.CurrentExecutionFilePath + “?page=” + (CurPage + 1);??????????
?60??????????? LastPaeg.NavigateUrl = Request.CurrentExecutionFilePath + “?page=” + objPage.PageCount.ToString();
?61??????????? if (CurPage <= 1 && objPage.PageCount <= 1)
?62??????????? {
?63??????????????? FirstPage.NavigateUrl = “”;
?64??????????????? PrevPage.NavigateUrl = “”;
?65??????????????? NextPage.NavigateUrl = “”;
?66??????????????? LastPaeg.NavigateUrl = “”;
?67??????????????? /**//*
?68??????????????? FirstPage.Visible = false;
?69??????????????? PrevPage.Visible = false;
?70??????????????? NextPage.Visible = false;
?71??????????????? LastPaeg.Visible = false;
?72??????????????? */
?73??????????? }
?74??????????? if (CurPage <= 1 && objPage.PageCount > 1)
?75??????????? {
?76??????????????? FirstPage.NavigateUrl = “”;
?77??????????????? PrevPage.NavigateUrl = “”;
?78??????????????? /**//*
?79??????????????? FirstPage.Visible = false;
?80??????????????? PrevPage.Visible = false;
?81??????????????? */
?82
?83
?84??????????? }
?85??????????? if (CurPage >= objPage.PageCount)
?86??????????? {
?87??????????????? NextPage.NavigateUrl = “”;
?88??????????????? LastPaeg.NavigateUrl = “”;
?89??????????????? /**//*
?90??????????????? NextPage.Visible = false;
?91??????????????? LastPaeg.Visible = false;
?92??????????????? */
?93??????????? }
?94??????? }
?95??????? catch(Exception error)
?96??????? {
?97??????????? Response.Write(error.ToString());
?98??????? }
?99??????? finally
100??????? {
101??????????? conn.Close();
102??????? }
103??? }
104??? private string PageList(int Pagecount, int Pageindex)//private string Jump_List(int Pagecount , int Pageindex , long L_Manage)//带参数的传递
105??? {
106??????? StringBuilder sb = new StringBuilder();
107??????? //下为带参数的传递
108??????? //sb.Append(“<select id=”Page_Jump” name=”Page_Jump” onchange=”window.location='” + Request.CurrentExecutionFilePath + “?page=’+ this.options[this.selectedIndex].value + ‘&Org_ID=” + L_Manage + “‘;”>”);
109??????? //不带参数的传递
110??????? sb.Append(“<select id=”Page_Jump” name=”Page_Jump” onchange=”window.location='” + Request.CurrentExecutionFilePath + “?page=’+ this.options[this.selectedIndex].value + ”;”>”);
111
112??????? for (int i = 1; i <= Pagecount; i++)
113??????? {
114??????????? if (Pageindex == i)
115??????????????? sb.Append(“<option value='” + i + “‘ selected>” + i + “</option>”);
116??????????? else
117??????????????? sb.Append(“<option value='” + i + “‘>” + i + “</option>”);
118??????? }
119??????? sb.Append(“</select>”);
120??????? return sb.ToString();
121??? }
122
123??
124}

发表回复

您的邮箱地址不会被公开。 必填项已用 * 标注

这个站点使用 Akismet 来减少垃圾评论。了解你的评论数据如何被处理

相关文章

开始在上面输入您的搜索词,然后按回车进行搜索。按ESC取消。

返回顶部