用Repeater如何实现分页? 要求必须要有首页,上一页,下页,尾页和跳转到第几页的功能,跳转到第几页可以是下拉列表来实现的? 解决方案 » 免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货 http://blog.csdn.net/durongjian/archive/2009/01/13/3767292.aspx,这个应该可以搞定了。 http://www.codefans.net/soft/2894.shtml刚错别字了……是aspnetpage…… http://www.codeproject.com/KB/custom-controls/ASPNETPagerControl.aspx最强大的.net分页控件,完全符合你的要求,也可以自己定制功能。 翻页控件第三方或者DataPager HTML:一共:[ <asp:Label ID="lblAllCount" runat="server" Text="0"></asp:Label> ]条记录 当前:[ <asp:Label ID="lblCurrentPage" runat="server" Text="1"></asp:Label> / <asp:Label ID="lblAllPage" runat="server"></asp:Label> ] <asp:LinkButton ID="lnkbtnFirst" runat="server" OnClick="LnkBtnFirst_Click">第一页</asp:LinkButton> <asp:LinkButton ID="lnkbtnPre" runat="server" OnClick="LnkBtnPre_Click">上一页</asp:LinkButton> <asp:LinkButton ID="lnkbtnNext" runat="server" OnClick="LnkBtnNext_Click">下一页</asp:LinkButton> <asp:LinkButton ID="lnkbtnLast" runat="server" OnClick="LnkBtnLast_Click">最后一页</asp:LinkButton> <asp:DropDownList ID="SearchSelectJump" runat="server" OnSelectedIndexChanged="SearchSelectJump_SelectedIndexChanged" AutoPostBack="true"></asp:DropDownList>C#string mySql = "select * from Mac_Order order by I.TitleSerial asc"; int myCurrentPage = Convert.ToInt32(this.lblCurrentPage.Text); // 当前页 mySearchPage = int.Parse(lblCurrentPage.Text.ToString()); // HTML中的页面参数 DataSet mySet = GetMySet(mySql); PagedDataSource mySource = new PagedDataSource(); mySource.DataSource = mySet.Tables[0].DefaultView; mySource.AllowPaging = true; // 分页大小 mySource.PageSize = 10; // 一共有多少条记录 lblAllCount.Text = mySource.DataSourceCount.ToString(); if (Convert.ToInt32(this.lblCurrentPage.Text) > mySource.PageCount) { // 增加判断的目的是,当最后一页,只有一条记录的时候,当用删除了,页数,应该相应的少一页 myCurrentPage = mySource.PageCount; // 重写当前页的显示 lblCurrentPage.Text = myCurrentPage.ToString(); } mySource.CurrentPageIndex = myCurrentPage - 1; this.lnkbtnFirst.Enabled = true; this.lnkbtnPre.Enabled = true; this.lnkbtnNext.Enabled = true; this.lnkbtnLast.Enabled = true; if (myCurrentPage == 1) { this.lnkbtnFirst.Enabled = false; this.lnkbtnPre.Enabled = false; } if (myCurrentPage == mySource.PageCount) { this.lnkbtnNext.Enabled = false; this.lnkbtnLast.Enabled = false; } // 一共有多少页 this.lblAllPage.Text = mySource.PageCount.ToString(); // 初始化,下拉跳转页 // 重置,不然每翻一次页,就会多一次 SearchSelectJump.Items.Clear(); for (int i = 0; i < mySource.PageCount; i++) { // i 必须从 0 开始,因为下面的 Items[i] 需要从 0 开始 SearchSelectJump.Items.Add("" + (i + 1) + ""); SearchSelectJump.Items[i].Value = "InfomationManage.aspx?SearchPage=" + (i + 1) + "&" + mySearchParam; // 设置选中项 if (mySearchPage == (i + 1)) { SearchSelectJump.Items[i].Selected = true; } } // 数据绑定 this.Repeater1.DataSource = mySource; this.Repeater1.DataBind(); RunDispose(); } protected void LnkBtnFirst_Click(object sender, EventArgs e) { this.lblCurrentPage.Text = "1"; this.PaginationBind(); } protected void LnkBtnPre_Click(object sender, EventArgs e) { this.lblCurrentPage.Text = Convert.ToString((Convert.ToInt32(this.lblCurrentPage.Text) - 1)); this.PaginationBind(); } protected void LnkBtnNext_Click(object sender, EventArgs e) { this.lblCurrentPage.Text = Convert.ToString((Convert.ToInt32(this.lblCurrentPage.Text) + 1)); this.PaginationBind(); } protected void LnkBtnLast_Click(object sender, EventArgs e) { this.lblCurrentPage.Text = this.lblAllPage.Text; this.PaginationBind(); } protected void SearchSelectJump_SelectedIndexChanged(object sender, EventArgs e) { // 搜索和分页的参数都不能传到这里,只能将参数放到 DropDownList 的 Value 中了 // Response.Redirect("InfomationManage.aspx?SearchPage=" + SearchSelectJump.Text.Trim() + "&" + mySearchParam); Response.Redirect(SearchSelectJump.Text.Trim()); } 页面代码中 <webdiyer:AspNetPager ID="aspPage" runat="server" AlwaysShow="True" OnPageChanged="aspPage_PageChanged" PageSize="5" ShowBoxThreshold="2" Width="236px"> </webdiyer:AspNetPager>.cs文件中 PagedDataSource pds = new PagedDataSource(); protected void Data_Bind() { pds.DataSource = ServerAccountManager.GetAllISa(); pds.AllowPaging = true; aspPage.RecordCount = pds.DataSourceCount; pds.PageSize = aspPage.PageSize; pds.CurrentPageIndex = aspPage.CurrentPageIndex - 1; //rptSa 为Repeater this.rptSa.DataSource = pds; this.rptSa.DataBind(); this.lblCount.Text = "总共 "+ServerAccountManager.GetAllCount() +" 个项目 "+"第 " + (pds.CurrentPageIndex + 1).ToString() + " 页 共 " + pds.PageCount.ToString() + " 页"; } protected void aspPage_PageChanged(object sender, EventArgs e) { Data_Bind(); } 把数据 填充 到 datatable中dim datatable as new data.datatabledim sda as new sqldataadapter("sql查询")sda.fill(datatable)开始分页dim pds as new pagedatasource 声明分页pds.datasourec=datatable.defaultview 或取分页列表pds.allowdatapaging=true 允许分页pds.pagesize =5 每页5条数据pds.carrentdataindex= 0 当前 页 如果你写 1 就显示 第5条数据后的5条数据最后就是吧 PDS绑定到控件中 看看你明白多少吧 用的是 vb.net 的 和C#差不多 pagedatesource或者存储过程 活用aspnetpager控件,还可使用存储过程共有<asp:Literal ID="RecordCount" runat="server"></asp:Literal>条记录共有<asp:Literal ID="PageCount" runat="server"></asp:Literal>页当前第<asp:Literal ID="Pageindex" runat="server"></asp:Literal>页<asp:HyperLink ID="FirstPage" runat="server" Text="首页"></asp:HyperLink><asp:HyperLink ID="PrevPage" runat="server" Text="上一页"></asp:HyperLink><asp:HyperLink ID="NextPage" runat="server" Text="下一页"></asp:HyperLink><asp:HyperLink ID="LastPaeg" runat="server" Text="尾页"></asp:HyperLink>跳转到<asp:Literal ID="Literal1" runat="server"></asp:Literal>页private void NewsBind() { string SqlStr = "select * from [News] order by AddTime"; string connectionString = System.Configuration.ConfigurationManager.AppSettings["ConnectionSqlServer"].ToString(); SqlConnection conn = new SqlConnection(connectionString); conn.Open(); SqlDataAdapter Adapter = new SqlDataAdapter(SqlStr, conn); DataSet ds = new DataSet(); try { Adapter.Fill(ds, "testTable"); PagedDataSource objPage = new PagedDataSource(); objPage.DataSource=ds.Tables["testTable"].DefaultView; objPage.AllowPaging=true; objPage.PageSize=3; int CurPage; if (Request.QueryString["Page"] != null) { CurPage = Convert.ToInt32(Request.QueryString["page"]); } else { CurPage = 1; } objPage.CurrentPageIndex = CurPage - 1; LeaveMessage.DataSource=objPage; LeaveMessage.DataBind(); RecordCount.Text = objPage.DataSourceCount.ToString(); PageCount.Text = objPage.PageCount.ToString(); Pageindex.Text = CurPage.ToString(); Literal1.Text = PageList(objPage.PageCount, CurPage); FirstPage.NavigateUrl = Request.CurrentExecutionFilePath + "?page=1"; PrevPage.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + (CurPage - 1); NextPage.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + (CurPage + 1); LastPaeg.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + objPage.PageCount.ToString(); if (CurPage <= 1 && objPage.PageCount <= 1) { FirstPage.NavigateUrl = ""; PrevPage.NavigateUrl = ""; NextPage.NavigateUrl = ""; LastPaeg.NavigateUrl = ""; } if (CurPage <= 1 && objPage.PageCount > 1) { FirstPage.NavigateUrl = ""; PrevPage.NavigateUrl = ""; } if (CurPage >= objPage.PageCount) { NextPage.NavigateUrl = ""; LastPaeg.NavigateUrl = ""; NextPage.Visible = false; LastPaeg.Visible = false; } } catch(Exception error) { Response.Write(error.ToString()); } finally { conn.Close(); } } private string PageList(int Pagecount, int Pageindex)//private string Jump_List(int Pagecount , int Pageindex , long L_Manage) { StringBuilder sb = new StringBuilder(); sb.Append("<select id=\"Page_Jump\" name=\"Page_Jump\" onchange=\"window.location='" + Request.CurrentExecutionFilePath + "?page='+ this.options[this.selectedIndex].value + '';\">"); for (int i = 1; i <= Pagecount; i++) { if (Pageindex == i) sb.Append("<option value='" + i + "' selected>" + i + "</option>"); else sb.Append("<option value='" + i + "'>" + i + "</option>"); } sb.Append("</select>"); return sb.ToString(); }参考参考 aspnetpager控件在哪啊?找不到吗? 我用是写的分页控件<%@ Control Language="C#" AutoEventWireup="true" CodeFile="PadingControl.ascx.cs" Inherits="UserControl_PadingControl" %>当前页<asp:Label ID="lblCurrent" runat="server"></asp:Label>/<asp:Label ID="lblTotal" runat="server"></asp:Label> <asp:LinkButton ID="btnFirst" runat="server" OnClick="btnFirst_Click" CausesValidation="False">首页</asp:LinkButton><asp:LinkButton ID="btnPre" runat="server" OnClick="btnPre_Click" CausesValidation="False">上一页</asp:LinkButton><asp:LinkButton ID="btnNext" runat="server" OnClick="btnNext_Click" CausesValidation="False">下一页</asp:LinkButton><asp:LinkButton ID="btnLast" runat="server" OnClick="btnLast_Click" CausesValidation="False">尾页</asp:LinkButton><asp:TextBox ID="txtPageNo" runat="server"></asp:TextBox><asp:RegularExpressionValidator ID="revPageNo" runat="server" Display="Dynamic" ValidationExpression="^[0-9]*$" ControlToValidate="txtPageNo" ErrorMessage="请输入数字"></asp:RegularExpressionValidator><asp:Button ID="btnGo" runat="server" Text="Go" OnClick="btnGo_Click" CausesValidation="False" />using System;using System.Data;using System.Configuration;using System.Collections;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;public partial class UserControl_PadingControl : System.Web.UI.UserControl{ protected void Page_Load(object sender, EventArgs e) { } /// <summary> /// PaddingChange事件的委托 /// </summary> /// <param name="pageIndex"></param> /// <param name="pageSize"></param> public delegate void PadingChangeHandler(int pageIndex, int pageSize); /// <summary> /// 定义一个事件 /// </summary> public event PadingChangeHandler PadingChange; /// <summary> /// 总记录数 /// </summary> public int RecordNum { get { return Convert.ToInt32(ViewState["RecordNum"]); } set { if (value < 0) throw new Exception("记录数不能为负数!"); ViewState["RecordNum"] = value; } } /// <summary> /// 页大小 /// </summary> public int PageSize { get { return Convert.ToInt32(ViewState["PageSize"]); } set { if (value <= 0) throw new Exception("页大小必须大于0!"); ViewState["PageSize"] = value; } } /// <summary> /// 总记录数 /// </summary> public int TotalPageNum { get { return Convert.ToInt32(ViewState["TotalPageNum"]); } set { if (value < 0) throw new Exception("页大小不能为负数!"); ViewState["TotalPageNum"] = value; this.lblTotal.Text = value.ToString(); } } /// <summary> /// 当前页 /// </summary> public int PageIndex { get { return Convert.ToInt32(ViewState["PageIndex"]); } set { if (value <= 0) value = 1; else if (value > this.TotalPageNum) { value = this.TotalPageNum; } if (value == 1) { this.btnFirst.Enabled = false; this.btnPre.Enabled = false; this.btnNext.Enabled = true; this.btnLast.Enabled = true; } else if (value == this.TotalPageNum) { this.btnFirst.Enabled = true; this.btnPre.Enabled = true; this.btnNext.Enabled = false; this.btnLast.Enabled = false; } else { this.btnFirst.Enabled = true; this.btnPre.Enabled = true; this.btnNext.Enabled = true; this.btnLast.Enabled = true; } this.lblCurrent.Text = value.ToString(); ViewState["PageIndex"] = value; if (PadingChange != null)//有事件响应 { PadingChange(this.PageIndex, PageSize); } } } public void InitPading(int recordNum, int pageSize, int pageIndex) { this.PageSize = pageSize; this.RecordNum = recordNum; this.TotalPageNum = Convert.ToInt32(Math.Ceiling(this.RecordNum * 1.0 / this.PageSize * 1.0)); this.PageIndex = pageIndex; } protected void btnFirst_Click(object sender, EventArgs e) { this.PageIndex = 1; } protected void btnPre_Click(object sender, EventArgs e) { this.PageIndex--; } protected void btnNext_Click(object sender, EventArgs e) { this.PageIndex++; } protected void btnLast_Click(object sender, EventArgs e) { this.PageIndex = this.TotalPageNum; } protected void btnGo_Click(object sender, EventArgs e) { try { this.PageIndex = int.Parse(this.txtPageNo.Text); } catch (Exception) { } }} 7楼代码中fou循环下的"mySearchParam"这个变量时哪来的? AspPageNet 简单点,,,写个 分页 SQL语句~ 分页的sql,查询总数的sql,一个ViewState~ DataSet ds = p.select_type(); //创建分页类 PagedDataSource MyPaged = new PagedDataSource(); //设置数据源 MyPaged.DataSource = ds.Tables[0].DefaultView; //允许分页 MyPaged.AllowPaging = true; //设置每页显示的项数 MyPaged.PageSize = 20; //定义变量用来保存当前页索引 int MyCurrentPage; //判断是否具有页面跳转的请求 if (Request.QueryString["Page"] != null) MyCurrentPage = Convert.ToInt32(Request.QueryString["Page"]); else MyCurrentPage = 1; //设置当前页的索引 MyPaged.CurrentPageIndex = MyCurrentPage - 1; //显示状态信息 //this.Label1.Text = "当前页:" + MyCurrentPage.ToString() + "/" + MyPaged.PageCount; //如果当前页面不是首页 if (!MyPaged.IsFirstPage) //设置"上一页"超级链接的URL为:当前执行页面的虚拟路径,并传递下一页面的索引值 this.HyperLink1.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(MyCurrentPage - 1); //如果当前页面不是最后一页 if (!MyPaged.IsLastPage) //设置"下一页"超级链接的URL为:当前执行页面的虚拟路径,并传递下一页面的索引值 this.HyperLink2.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(MyCurrentPage + 1); //进行数据绑定 this.Repeater2.DataSource = MyPaged; this.Repeater2.DataBind();上页和下页 其他的类似了 自己做 Repeater 无刷新分页Repeater 无刷新分页 分页还是不能成功,说缺少对象private void DataBindToRepeater() { GreenProductManager manager = new GreenProductManager(); DataTable table = manager.showGreenProductCategory(); PagedDataSource pds = new PagedDataSource(); pds.DataSource = table.DefaultView; pds.AllowPaging = true; pds.PageSize = 6; int myCurrentPage = Convert.ToInt32(this.lblCurrentPage.Text); //int mySearchPage = Int32.Parse(this.lblCurrentPage.Text); //一共有多少条记录 this.lblAllCount.Text = pds.DataSourceCount.ToString(); //如果最后一页为当前页则为当前页 if (Convert.ToInt32(this.lblCurrentPage.Text) > pds.PageCount) { myCurrentPage = pds.PageCount; //重写当前页的显示 this.lblCurrentPage.Text = myCurrentPage.ToString(); } pds.CurrentPageIndex = myCurrentPage - 1; this.lnkbtnFirst.Enabled = true; this.lnkbtnNext.Enabled = true; this.lnkbtnPre.Enabled = true; this.lnkbtnLast.Enabled = true; if (myCurrentPage == 1) { this.lnkbtnFirst.Enabled = false; this.lnkbtnPre.Enabled = false; } //如果当前页是最后一页 if (myCurrentPage == pds.PageCount) { this.lnkbtnNext.Enabled = false; this.lnkbtnLast.Enabled = false; } //一共有多少页 this.lblAllPage.Text = pds.PageCount.ToString(); this.repeaterRightAll.DataSource = pds; this.repeaterRightAll.DataBind(); }//首页 protected void LnkBtnFirst_Click(object sender, EventArgs e) { this.lblCurrentPage.Text = "1"; this.DataBindToRepeater(); } //前一页 protected void LnkBtnPre_Click(object sender, EventArgs e) { this.lblCurrentPage.Text = Convert.ToString(Convert.ToInt32(this.lblCurrentPage.Text) - 1); this.DataBindToRepeater(); } //下一页 protected void LnkBtnNext_Click(object sender, EventArgs e) { this.lblCurrentPage.Text = Convert.ToString(Convert.ToInt32(this.lblCurrentPage.Text) + 1); this.DataBindToRepeater(); } //尾页 protected void LnkBtnLast_Click(object sender, EventArgs e) { this.lblCurrentPage.Text = this.lblAllPage.Text; this.DataBindToRepeater(); } http://blog.csdn.net/Sandy945/archive/2009/05/22/4208998.aspx你把代码 粘贴过去 就能运行 PagedDataSource 我觉得数据少还可以。数据太多的话, 还是写个分面存储过程,效率高些 感谢各位对我的帮助,问题已经解决了,原来是页面没有加form下班前结贴! sl的界面样式能向web页面一样分离吗? 读取cookies问题 fck 上传附件功能 listbox页面传值 有谁在苏州做asp.net的 ? 如何用程序生成dataset的xsd文件? 一个关于datagrid数据批量录入的问题 请大家推荐一个收费的.NET空间/虚拟主机 window.alert问题 请问怎么才能将SYBASE数据库中的WORD文件读出来啊!!非常急! gridview中隐藏模板 用企业库实现传入参数,调用一个存储过程,返回值为泛型
最强大的.net分页控件,完全符合你的要求,也可以自己定制功能。
第三方或者DataPager
当前:[ <asp:Label ID="lblCurrentPage" runat="server" Text="1"></asp:Label> / <asp:Label ID="lblAllPage" runat="server"></asp:Label> ]
<asp:LinkButton ID="lnkbtnFirst" runat="server" OnClick="LnkBtnFirst_Click">第一页</asp:LinkButton>
<asp:LinkButton ID="lnkbtnPre" runat="server" OnClick="LnkBtnPre_Click">上一页</asp:LinkButton>
<asp:LinkButton ID="lnkbtnNext" runat="server" OnClick="LnkBtnNext_Click">下一页</asp:LinkButton>
<asp:LinkButton ID="lnkbtnLast" runat="server" OnClick="LnkBtnLast_Click">最后一页</asp:LinkButton>
<asp:DropDownList ID="SearchSelectJump" runat="server" OnSelectedIndexChanged="SearchSelectJump_SelectedIndexChanged" AutoPostBack="true"></asp:DropDownList>C#string mySql = "select * from Mac_Order order by I.TitleSerial asc"; int myCurrentPage = Convert.ToInt32(this.lblCurrentPage.Text); // 当前页
mySearchPage = int.Parse(lblCurrentPage.Text.ToString()); // HTML中的页面参数
DataSet mySet = GetMySet(mySql); PagedDataSource mySource = new PagedDataSource(); mySource.DataSource = mySet.Tables[0].DefaultView;
mySource.AllowPaging = true; // 分页大小
mySource.PageSize = 10; // 一共有多少条记录
lblAllCount.Text = mySource.DataSourceCount.ToString(); if (Convert.ToInt32(this.lblCurrentPage.Text) > mySource.PageCount)
{
// 增加判断的目的是,当最后一页,只有一条记录的时候,当用删除了,页数,应该相应的少一页
myCurrentPage = mySource.PageCount; // 重写当前页的显示
lblCurrentPage.Text = myCurrentPage.ToString();
} mySource.CurrentPageIndex = myCurrentPage - 1; this.lnkbtnFirst.Enabled = true;
this.lnkbtnPre.Enabled = true;
this.lnkbtnNext.Enabled = true;
this.lnkbtnLast.Enabled = true; if (myCurrentPage == 1)
{
this.lnkbtnFirst.Enabled = false;
this.lnkbtnPre.Enabled = false;
} if (myCurrentPage == mySource.PageCount)
{
this.lnkbtnNext.Enabled = false;
this.lnkbtnLast.Enabled = false;
} // 一共有多少页
this.lblAllPage.Text = mySource.PageCount.ToString(); // 初始化,下拉跳转页 // 重置,不然每翻一次页,就会多一次
SearchSelectJump.Items.Clear(); for (int i = 0; i < mySource.PageCount; i++)
{
// i 必须从 0 开始,因为下面的 Items[i] 需要从 0 开始
SearchSelectJump.Items.Add("" + (i + 1) + "");
SearchSelectJump.Items[i].Value = "InfomationManage.aspx?SearchPage=" + (i + 1) + "&" + mySearchParam; // 设置选中项
if (mySearchPage == (i + 1))
{
SearchSelectJump.Items[i].Selected = true;
}
} // 数据绑定
this.Repeater1.DataSource = mySource;
this.Repeater1.DataBind(); RunDispose();
} protected void LnkBtnFirst_Click(object sender, EventArgs e)
{
this.lblCurrentPage.Text = "1";
this.PaginationBind();
} protected void LnkBtnPre_Click(object sender, EventArgs e)
{
this.lblCurrentPage.Text = Convert.ToString((Convert.ToInt32(this.lblCurrentPage.Text) - 1));
this.PaginationBind();
} protected void LnkBtnNext_Click(object sender, EventArgs e)
{
this.lblCurrentPage.Text = Convert.ToString((Convert.ToInt32(this.lblCurrentPage.Text) + 1));
this.PaginationBind();
} protected void LnkBtnLast_Click(object sender, EventArgs e)
{
this.lblCurrentPage.Text = this.lblAllPage.Text;
this.PaginationBind();
} protected void SearchSelectJump_SelectedIndexChanged(object sender, EventArgs e)
{
// 搜索和分页的参数都不能传到这里,只能将参数放到 DropDownList 的 Value 中了
// Response.Redirect("InfomationManage.aspx?SearchPage=" + SearchSelectJump.Text.Trim() + "&" + mySearchParam);
Response.Redirect(SearchSelectJump.Text.Trim());
}
</webdiyer:AspNetPager>
.cs文件中 PagedDataSource pds = new PagedDataSource();
protected void Data_Bind()
{
pds.DataSource = ServerAccountManager.GetAllISa();
pds.AllowPaging = true;
aspPage.RecordCount = pds.DataSourceCount;
pds.PageSize = aspPage.PageSize;
pds.CurrentPageIndex = aspPage.CurrentPageIndex - 1;
//rptSa 为Repeater
this.rptSa.DataSource = pds;
this.rptSa.DataBind();
this.lblCount.Text = "总共 "+ServerAccountManager.GetAllCount() +" 个项目 "+"第 " + (pds.CurrentPageIndex + 1).ToString() + " 页 共 " + pds.PageCount.ToString() + " 页";
}
protected void aspPage_PageChanged(object sender, EventArgs e)
{
Data_Bind();
}
dim datatable as new data.datatable
dim sda as new sqldataadapter("sql查询")
sda.fill(datatable)
开始分页dim pds as new pagedatasource 声明分页
pds.datasourec=datatable.defaultview 或取分页列表pds.allowdatapaging=true 允许分页
pds.pagesize =5 每页5条数据
pds.carrentdataindex= 0 当前 页 如果你写 1 就显示 第5条数据后的5条数据最后就是吧 PDS绑定到控件中 看看你明白多少吧
用的是 vb.net 的 和C#差不多
或者
存储过程
共有<asp:Literal ID="RecordCount" runat="server"></asp:Literal>条记录
共有<asp:Literal ID="PageCount" runat="server"></asp:Literal>页
当前第<asp:Literal ID="Pageindex" runat="server"></asp:Literal>页
<asp:HyperLink ID="FirstPage" runat="server" Text="首页"></asp:HyperLink>
<asp:HyperLink ID="PrevPage" runat="server" Text="上一页"></asp:HyperLink>
<asp:HyperLink ID="NextPage" runat="server" Text="下一页"></asp:HyperLink>
<asp:HyperLink ID="LastPaeg" runat="server" Text="尾页"></asp:HyperLink>
跳转到<asp:Literal ID="Literal1" runat="server"></asp:Literal>页private void NewsBind()
{
string SqlStr = "select * from [News] order by AddTime";
string connectionString = System.Configuration.ConfigurationManager.AppSettings["ConnectionSqlServer"].ToString();
SqlConnection conn = new SqlConnection(connectionString);
conn.Open();
SqlDataAdapter Adapter = new SqlDataAdapter(SqlStr, conn);
DataSet ds = new DataSet();
try
{
Adapter.Fill(ds, "testTable");
PagedDataSource objPage = new PagedDataSource();
objPage.DataSource=ds.Tables["testTable"].DefaultView;
objPage.AllowPaging=true;
objPage.PageSize=3;
int CurPage;
if (Request.QueryString["Page"] != null)
{
CurPage = Convert.ToInt32(Request.QueryString["page"]);
}
else
{
CurPage = 1;
}
objPage.CurrentPageIndex = CurPage - 1;
LeaveMessage.DataSource=objPage;
LeaveMessage.DataBind();
RecordCount.Text = objPage.DataSourceCount.ToString();
PageCount.Text = objPage.PageCount.ToString();
Pageindex.Text = CurPage.ToString();
Literal1.Text = PageList(objPage.PageCount, CurPage);
FirstPage.NavigateUrl = Request.CurrentExecutionFilePath + "?page=1";
PrevPage.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + (CurPage - 1);
NextPage.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + (CurPage + 1);
LastPaeg.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + objPage.PageCount.ToString();
if (CurPage <= 1 && objPage.PageCount <= 1)
{
FirstPage.NavigateUrl = "";
PrevPage.NavigateUrl = "";
NextPage.NavigateUrl = "";
LastPaeg.NavigateUrl = "";
}
if (CurPage <= 1 && objPage.PageCount > 1)
{
FirstPage.NavigateUrl = "";
PrevPage.NavigateUrl = "";
}
if (CurPage >= objPage.PageCount)
{
NextPage.NavigateUrl = "";
LastPaeg.NavigateUrl = "";
NextPage.Visible = false;
LastPaeg.Visible = false;
}
}
catch(Exception error)
{
Response.Write(error.ToString());
}
finally
{
conn.Close();
}
}
private string PageList(int Pagecount, int Pageindex)//private string Jump_List(int Pagecount , int Pageindex , long L_Manage)
{
StringBuilder sb = new StringBuilder();
sb.Append("<select id=\"Page_Jump\" name=\"Page_Jump\" onchange=\"window.location='" + Request.CurrentExecutionFilePath + "?page='+ this.options[this.selectedIndex].value + '';\">"); for (int i = 1; i <= Pagecount; i++)
{
if (Pageindex == i)
sb.Append("<option value='" + i + "' selected>" + i + "</option>");
else
sb.Append("<option value='" + i + "'>" + i + "</option>");
}
sb.Append("</select>");
return sb.ToString();
}
参考
参考
Inherits="UserControl_PadingControl" %>
当前页<asp:Label ID="lblCurrent" runat="server"></asp:Label>/<asp:Label ID="lblTotal"
runat="server"></asp:Label>
<asp:LinkButton ID="btnFirst" runat="server" OnClick="btnFirst_Click" CausesValidation="False">首页</asp:LinkButton>
<asp:LinkButton ID="btnPre" runat="server" OnClick="btnPre_Click" CausesValidation="False">上一页</asp:LinkButton>
<asp:LinkButton ID="btnNext" runat="server" OnClick="btnNext_Click" CausesValidation="False">下一页</asp:LinkButton>
<asp:LinkButton ID="btnLast" runat="server" OnClick="btnLast_Click" CausesValidation="False">尾页</asp:LinkButton>
<asp:TextBox ID="txtPageNo" runat="server"></asp:TextBox>
<asp:RegularExpressionValidator ID="revPageNo" runat="server" Display="Dynamic" ValidationExpression="^[0-9]*$"
ControlToValidate="txtPageNo" ErrorMessage="请输入数字"></asp:RegularExpressionValidator>
<asp:Button ID="btnGo" runat="server" Text="Go" OnClick="btnGo_Click" CausesValidation="False" />
using System;
using System.Data;
using System.Configuration;
using System.Collections;
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;public partial class UserControl_PadingControl : System.Web.UI.UserControl
{
protected void Page_Load(object sender, EventArgs e)
{ }
/// <summary>
/// PaddingChange事件的委托
/// </summary>
/// <param name="pageIndex"></param>
/// <param name="pageSize"></param>
public delegate void PadingChangeHandler(int pageIndex, int pageSize); /// <summary>
/// 定义一个事件
/// </summary>
public event PadingChangeHandler PadingChange; /// <summary>
/// 总记录数
/// </summary>
public int RecordNum
{
get
{
return Convert.ToInt32(ViewState["RecordNum"]);
}
set
{
if (value < 0)
throw new Exception("记录数不能为负数!"); ViewState["RecordNum"] = value;
}
} /// <summary>
/// 页大小
/// </summary>
public int PageSize
{
get
{
return Convert.ToInt32(ViewState["PageSize"]);
}
set
{
if (value <= 0)
throw new Exception("页大小必须大于0!"); ViewState["PageSize"] = value;
}
} /// <summary>
/// 总记录数
/// </summary>
public int TotalPageNum
{
get
{
return
Convert.ToInt32(ViewState["TotalPageNum"]);
}
set
{
if (value < 0)
throw new Exception("页大小不能为负数!");
ViewState["TotalPageNum"] = value;
this.lblTotal.Text = value.ToString();
}
} /// <summary>
/// 当前页
/// </summary>
public int PageIndex
{
get
{
return Convert.ToInt32(ViewState["PageIndex"]);
}
set
{
if (value <= 0)
value = 1;
else if (value > this.TotalPageNum)
{
value = this.TotalPageNum;
} if (value == 1)
{
this.btnFirst.Enabled = false;
this.btnPre.Enabled = false;
this.btnNext.Enabled = true;
this.btnLast.Enabled = true;
}
else if (value == this.TotalPageNum)
{
this.btnFirst.Enabled = true;
this.btnPre.Enabled = true;
this.btnNext.Enabled = false;
this.btnLast.Enabled = false;
}
else
{
this.btnFirst.Enabled = true;
this.btnPre.Enabled = true;
this.btnNext.Enabled = true;
this.btnLast.Enabled = true;
} this.lblCurrent.Text = value.ToString();
ViewState["PageIndex"] = value; if (PadingChange != null)//有事件响应
{
PadingChange(this.PageIndex, PageSize);
}
}
} public void InitPading(int recordNum, int pageSize, int pageIndex)
{
this.PageSize = pageSize;
this.RecordNum = recordNum; this.TotalPageNum = Convert.ToInt32(Math.Ceiling(this.RecordNum * 1.0 / this.PageSize * 1.0)); this.PageIndex = pageIndex;
}
protected void btnFirst_Click(object sender, EventArgs e)
{
this.PageIndex = 1;
}
protected void btnPre_Click(object sender, EventArgs e)
{
this.PageIndex--;
}
protected void btnNext_Click(object sender, EventArgs e)
{
this.PageIndex++;
}
protected void btnLast_Click(object sender, EventArgs e)
{
this.PageIndex = this.TotalPageNum;
}
protected void btnGo_Click(object sender, EventArgs e)
{
try
{
this.PageIndex = int.Parse(this.txtPageNo.Text);
}
catch (Exception)
{ }
}
}
fou循环下的"mySearchParam"这个变量时哪来的?
DataSet ds = p.select_type();
//创建分页类
PagedDataSource MyPaged = new PagedDataSource();
//设置数据源
MyPaged.DataSource = ds.Tables[0].DefaultView;
//允许分页
MyPaged.AllowPaging = true;
//设置每页显示的项数
MyPaged.PageSize = 20;
//定义变量用来保存当前页索引
int MyCurrentPage;
//判断是否具有页面跳转的请求
if (Request.QueryString["Page"] != null)
MyCurrentPage = Convert.ToInt32(Request.QueryString["Page"]);
else
MyCurrentPage = 1;
//设置当前页的索引
MyPaged.CurrentPageIndex = MyCurrentPage - 1;
//显示状态信息
//this.Label1.Text = "当前页:" + MyCurrentPage.ToString() + "/" + MyPaged.PageCount;
//如果当前页面不是首页
if (!MyPaged.IsFirstPage)
//设置"上一页"超级链接的URL为:当前执行页面的虚拟路径,并传递下一页面的索引值
this.HyperLink1.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(MyCurrentPage - 1);
//如果当前页面不是最后一页
if (!MyPaged.IsLastPage)
//设置"下一页"超级链接的URL为:当前执行页面的虚拟路径,并传递下一页面的索引值
this.HyperLink2.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(MyCurrentPage + 1);
//进行数据绑定
this.Repeater2.DataSource = MyPaged;
this.Repeater2.DataBind();上页和下页 其他的类似了 自己做
Repeater 无刷新分页
private void DataBindToRepeater() {
GreenProductManager manager = new GreenProductManager();
DataTable table = manager.showGreenProductCategory();
PagedDataSource pds = new PagedDataSource();
pds.DataSource = table.DefaultView;
pds.AllowPaging = true;
pds.PageSize = 6; int myCurrentPage = Convert.ToInt32(this.lblCurrentPage.Text);
//int mySearchPage = Int32.Parse(this.lblCurrentPage.Text);
//一共有多少条记录
this.lblAllCount.Text = pds.DataSourceCount.ToString();
//如果最后一页为当前页则为当前页
if (Convert.ToInt32(this.lblCurrentPage.Text) > pds.PageCount)
{
myCurrentPage = pds.PageCount;
//重写当前页的显示
this.lblCurrentPage.Text = myCurrentPage.ToString();
}
pds.CurrentPageIndex = myCurrentPage - 1;
this.lnkbtnFirst.Enabled = true;
this.lnkbtnNext.Enabled = true;
this.lnkbtnPre.Enabled = true;
this.lnkbtnLast.Enabled = true; if (myCurrentPage == 1)
{
this.lnkbtnFirst.Enabled = false;
this.lnkbtnPre.Enabled = false;
}
//如果当前页是最后一页
if (myCurrentPage == pds.PageCount)
{
this.lnkbtnNext.Enabled = false;
this.lnkbtnLast.Enabled = false;
}
//一共有多少页
this.lblAllPage.Text = pds.PageCount.ToString();
this.repeaterRightAll.DataSource = pds;
this.repeaterRightAll.DataBind(); }
//首页
protected void LnkBtnFirst_Click(object sender, EventArgs e)
{
this.lblCurrentPage.Text = "1";
this.DataBindToRepeater();
}
//前一页
protected void LnkBtnPre_Click(object sender, EventArgs e)
{
this.lblCurrentPage.Text = Convert.ToString(Convert.ToInt32(this.lblCurrentPage.Text) - 1);
this.DataBindToRepeater();
}
//下一页
protected void LnkBtnNext_Click(object sender, EventArgs e)
{
this.lblCurrentPage.Text = Convert.ToString(Convert.ToInt32(this.lblCurrentPage.Text) + 1);
this.DataBindToRepeater();
}
//尾页
protected void LnkBtnLast_Click(object sender, EventArgs e)
{
this.lblCurrentPage.Text = this.lblAllPage.Text;
this.DataBindToRepeater();
}
你把代码 粘贴过去 就能运行
下班前结贴!