protected void Page_Load(object sender, EventArgs e)
{
Pagering();
}
public void Pagering()
{
//初始设置
int PageSize = 7;//每页显示7项数据
int TotalRecord = 0;//记录得总数
int PageCount = 0;//页面总数
int CurPage = 1;//当前页面数 //获取页面数
if (Request.QueryString["Page"] != null)
{
CurPage = int.Parse(Request.QueryString["Page"].ToString());
}
//得到总记录数
string sql = "select count(id) from film";
DataSet ds = SQLODB.GetDataset(sql);
if (ds.Tables[0].Rows.Count > 0)
{
TotalRecord = int.Parse(ds.Tables[0].Rows[0][0].ToString());
}
//计算总页面数
if (TotalRecord % PageSize != 0)
{
PageCount = TotalRecord / PageSize + 1;
}
else
{
PageCount = TotalRecord / PageSize;
}
//判断
if (CurPage <= 0)
CurPage = 1;
if (CurPage > PageCount)
CurPage = PageCount;
//用SQL执行分页
sql = "select top " + PageSize.ToString() + " * from film where (ID not in (select top " + Convert.ToString((CurPage - 1) * PageSize) + " id from film order by id))order by id desc";
ds = SQLODB.GetDataset(sql);
//前台显示
this.LblPageCount.Text = PageCount.ToString();
this.LblCurPage.Text = CurPage.ToString();
this.LblPageSize.Text = PageSize.ToString();
this.LblTotalRecord.Text = TotalRecord.ToString();
this.HlinkOnePage.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=1";
this.HlinkPrevPage.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage-1);
this.HlinkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1);
this.HlinkEndPage.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + Convert.ToString(PageCount);
//绑定数据
this.Repeater5.DataSource = ds;
this.Repeater5.DataBind();
} 在分页中,首页可以,但点击下一页Page会到下一页,但是数据还是第一页的数据,尾页也可以到尾页得数据,在尾页时点上一页,可的到倒数第二页得数据,但在点上一页时,Page可以为上一页,数据又恢复到了首页得数据~也就是说,真正有用得只有首页和尾页~不知道为什么,请各位帮帮忙啊~分页代码是不是有问题?还是什么别的问题,谢谢啦~请指点啊·没用到存储过程~关键的分页执行代码已经有红色注明!(没有用存储过程)
{
Pagering();
}
public void Pagering()
{
//初始设置
int PageSize = 7;//每页显示7项数据
int TotalRecord = 0;//记录得总数
int PageCount = 0;//页面总数
int CurPage = 1;//当前页面数 //获取页面数
if (Request.QueryString["Page"] != null)
{
CurPage = int.Parse(Request.QueryString["Page"].ToString());
}
//得到总记录数
string sql = "select count(id) from film";
DataSet ds = SQLODB.GetDataset(sql);
if (ds.Tables[0].Rows.Count > 0)
{
TotalRecord = int.Parse(ds.Tables[0].Rows[0][0].ToString());
}
//计算总页面数
if (TotalRecord % PageSize != 0)
{
PageCount = TotalRecord / PageSize + 1;
}
else
{
PageCount = TotalRecord / PageSize;
}
//判断
if (CurPage <= 0)
CurPage = 1;
if (CurPage > PageCount)
CurPage = PageCount;
//用SQL执行分页
sql = "select top " + PageSize.ToString() + " * from film where (ID not in (select top " + Convert.ToString((CurPage - 1) * PageSize) + " id from film order by id))order by id desc";
ds = SQLODB.GetDataset(sql);
//前台显示
this.LblPageCount.Text = PageCount.ToString();
this.LblCurPage.Text = CurPage.ToString();
this.LblPageSize.Text = PageSize.ToString();
this.LblTotalRecord.Text = TotalRecord.ToString();
this.HlinkOnePage.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=1";
this.HlinkPrevPage.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage-1);
this.HlinkNext.NavigateUrl = Request.CurrentExecutionFilePath + "?Page=" + Convert.ToString(CurPage + 1);
this.HlinkEndPage.NavigateUrl = Request.CurrentExecutionFilePath + "?page=" + Convert.ToString(PageCount);
//绑定数据
this.Repeater5.DataSource = ds;
this.Repeater5.DataBind();
} 在分页中,首页可以,但点击下一页Page会到下一页,但是数据还是第一页的数据,尾页也可以到尾页得数据,在尾页时点上一页,可的到倒数第二页得数据,但在点上一页时,Page可以为上一页,数据又恢复到了首页得数据~也就是说,真正有用得只有首页和尾页~不知道为什么,请各位帮帮忙啊~分页代码是不是有问题?还是什么别的问题,谢谢啦~请指点啊·没用到存储过程~关键的分页执行代码已经有红色注明!(没有用存储过程)
解决方案 »
- 这些是什么编码
- 调用页如何调用用户控件里的方法?
- dropdownlist问题
- javascript 语句
- \符号转换问题。。。。。。。
- asp.net 怎么完成类是IE上面的 文件,编辑,查看``的功能?(要有2级的)
- Asp.net2005 有没有Global.asax文件?
- 试图运行项目时出错。无法在WEB服务器中启动调试,调试失败,因为没有启动集成WINDOWS身份验证。解决马上结帐。
- 怎么在asp.net中清除保存密码的cookie?
- 关于rsa加密的问题
- 装完 windows server2003后,添加或删除程序中没有“Internet信息服务”这一项是怎么回事??
- 求助:关于网络映射硬盘做虚拟目录,不胜感激!
我觉得可能是这个问题,重点看一下,
看你的中文文字
估计是页面改变的以后没有重新绑定数据
在页面改变以后bind一下就行了