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可以为上一页,数据又恢复到了首页得数据~也就是说,真正有用得只有首页和尾页~不知道为什么,请各位帮帮忙啊~分页代码是不是有问题?还是什么别的问题,谢谢啦~请指点啊·没用到存储过程~关键的分页执行代码已经有红色注明!(没有用存储过程)
解决方案 »
- html标签导致页面错乱问题
- 如何实现asp:FileUpload控件选择图片文件后,就立即在页面显示出该图片?路径可为本地的
- 如何遍历treenodes?
- 对于疯狂刷新程序会出现:System.Data.OleDb.OleDbException: 未指定的
- 请高手帮我解决一下这个难题!!关于数据库导入导出!!
- DataKeyField可否同时get几个属性值
- 谈出窗口!!
- 一个小问题:DropDownList绑定 的问题!
- jpyc ------------------进来接分
- 在DataGrid中模版列上有RadioButton的问题
- 装完 windows server2003后,添加或删除程序中没有“Internet信息服务”这一项是怎么回事??
- 求助:关于网络映射硬盘做虚拟目录,不胜感激!
我觉得可能是这个问题,重点看一下,
看你的中文文字
估计是页面改变的以后没有重新绑定数据
在页面改变以后bind一下就行了