制作分页

rsxhsmm 2012-03-26 10:26:33
我的数据库中有8条记录
public partial class _Default : System.Web.UI.Page
{
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
DataListDaTabind();
}
}
protected void DataListDaTabind()
{
AccessDataSource ads = new AccessDataSource();
ads.DataFile = "~/App_Data/shopcart.mdb";
ads.SelectCommand = "select * from Product order by productid ASC";
DataView dv = (DataView)ads.Select(DataSourceSelectArguments.Empty);
PagedDataSource objPage = new PagedDataSource();
objPage.DataSource = dv;
objPage.AllowPaging = true;
objPage.PageSize =6;
int TolPage;
TolPage = objPage.PageCount;
int CurPage;
if (Request.QueryString["Page"] != null)
{
CurPage = Convert.ToInt32(Request.QueryString["Page"]);
}
else
{
CurPage = 1;
}
objPage.CurrentPageIndex = CurPage - 1;
lblCurPage.Text = "目前在第" + CurPage.ToString() + "页,共" + TolPage.ToString() + "页";
lnkFirst.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=1";
lnkLast.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + TolPage.ToString();
if (!objPage.IsFirstPage)
{
lnkPrev.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1);
}
else
{
lnkPrev.Visible = false;
lnkFirst.Visible = false;
}
if (!objPage.IsLastPage)
{
lnkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage - 1);
}
else
{
lnkNext.Visible = false;
lnkLast.Visible = false;
}
DataList1.DataSource = objPage;
DataList1.DataBind();//数据库中有8条记录,运行后共两页当单击下一页时总在这提示错误“索引 -6 不是为负数,就是大于行数”。

求救!!!!
...全文
98 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
ycproc 2012-03-26
  • 打赏
  • 举报
回复
[Quote=引用 3 楼 rsxhsmm 的回复:]

我想要的是在我的程序基础上改的,不是你们的代码!但还是很感谢!
[/Quote]

你的代码没法改。。。

你用分页 加上 分页的sql
你现在的思路是错误的
低调之人 2012-03-26
  • 打赏
  • 举报
回复
嗯 好东西 收藏了
rsxhsmm 2012-03-26
  • 打赏
  • 举报
回复
我想要的是在我的程序基础上改的,不是你们的代码!但还是很感谢!
yyl8781697 2012-03-26
  • 打赏
  • 举报
回复
http://www.cnblogs.com/yyl8781697/archive/2012/03/07/aspnetpager.html
简单实用的分页代码,含demo,
希望对LZ有帮助
ycproc 2012-03-26
  • 打赏
  • 举报
回复
分页在SQL里面去分 不要这么用。。。
using System;
using System.Collections.Generic;
using System.Web;
using System.Text;
using System.Text.RegularExpressions;

public class PagingCollection<T>
{
private int pagezise;

public int Pagezise
{
get { return pagezise; }
set { pagezise = value; }
}
private int pageindex;

public int Pageindex
{
get { return pageindex; }
set { pageindex = value; }
}
private int TotalCount;

public int TotalCount1
{
get { return TotalCount; }
set { TotalCount = value; }
}
private int TotalPage=0;

public int TotalPage1
{
get { return TotalPage; }
set { TotalPage = value; }
}
private string url;

public string Url
{
get { return url; }
set { url = value; }
}
private string urlparms;

public string Urlparms
{
get {

return urlparms; }
set { urlparms = value; }
}

/// <summary>
/// 分页数据构造
/// </summary>
/// <param name="source"></param>
/// <param name="pageindex"></param>
/// <param name="pagezise"></param>
/// <param name="totalcount"></param>
/// <param name="url"></param>
public PagingCollection(int pageindex, int pagezise, int totalcount, string url)
{
this.pageindex = pageindex;
this.pagezise = pagezise;
TotalCount = totalcount;
TotalPage = (int)Math.Ceiling(TotalCount / (double)pagezise);
this.url = url;

}

public PagingCollection(int pageindex, int pagezise, int totalcount, string url,string urlparms)
{
this.pageindex = pageindex;
this.pagezise = pagezise;
TotalCount = totalcount;
TotalPage = (int)Math.Ceiling(TotalCount / (double)pagezise);
this.url = url;
this.urlparms = urlparms;

}

#region 分页属性 返回分页数据

public string GetPatePar
{
get
{
if (TotalCount1 > 0)
{
StringBuilder str = new StringBuilder();
int startpage = (pageindex - 1) / 10 * 10 + 1;
int endpage = (pageindex - 1) / 10 * 10 + 10;
int x = endpage > TotalPage ? TotalPage : endpage;
str.Append("<div style=' color:#1E5494;'>共" + TotalPage1 + "页 / 当前第" + pageindex + "页   ");

if (HasPreviousPage)
{
str.Append("<a href=" + url + "?page=1" + GetURLParms + "" + urlparms + ">首页</a> ");
str.Append("<a href=" + url + "?page=" + (pageindex - 1) + GetURLParms + "" + urlparms + ">上一页</a>");
}
else
{
str.Append("<a href=#>首页 </a>");
str.Append("<a href=#>上一页</a>");
}
for (int i = startpage; i <= x; i++)
{
if (i == pageindex)
{
str.Append(string.Format("<a style='margin-left:3px; margin-right:3px;padding:2px 4px 2px 4px;color:red;border:1px solid #cccccc;background-color:#ffffff; '>" + i + "</a>"));
}
else
{
str.Append(string.Format("<a style='margin-left:3px; margin-right:3px;' href=" + url + "?page=" + i + GetURLParms + "" + urlparms + ">" + i + "</a>"));
}
}
if (HasNextPage)
{

str.Append("<a href=" + url + "?page=" + (pageindex + 1) + GetURLParms + "" + urlparms + ">下一页 </a>");
str.Append("<a href=" + url + "?page=" + TotalPage + GetURLParms + "" + urlparms + ">尾页</a>");
}
else
{
str.Append("<a href=#>下一页 </a>");
str.Append("<a href=#>尾页</a>");
}
str.Append("</div>");
return str.ToString();
}
else
{
return "<font color=red>暂无数据!</font>";
}

}
}

#endregion

/// <summary>
/// url重写
/// </summary>
private string GetURLParms
{
get
{
string query = HttpContext.Current.Request.Url.Query;
query = Regex.Replace(query, @"\?page=\d*", "", RegexOptions.Compiled);
return query;

}
}

/// <summary>
///判断是否有上一页
/// </summary>
public bool HasPreviousPage
{
get
{
return (pageindex > 1);
}
}
/// <summary>
///判断是否有下一页
/// </summary>
public bool HasNextPage
{
get
{
return (pageindex < TotalPage);
}
}
}

/// <summary>
/// 分页数据类
/// </summary>
/// <typeparam name="T"></typeparam>
public class PageBean<T>
{

IList<T> datasource = new List<T>();

public IList<T> Datasource
{
get { return datasource; }
set { datasource = value; }
}

int pagesum;

public int Pagesum
{
get { return pagesum; }
set { pagesum = value; }
}
public PageBean(IList<T> datasource, int pagesum)
{
this.datasource = datasource;
this.pagesum = pagesum;
}
public PageBean()
{
//
// TODO: 在此处添加构造函数逻辑
//
}
}

62,267

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧