新手求助。问一个分页代码的一部分(currentpageindex相关)
这里边加红一段的作用求解释!
private void getGoods()
{
//获取数据
string strsql = "select * from 新闻信息 where 新闻类别 like '" + Request.Params["id"].ToString() + "' order by 流水号 desc";
DataTable dt = BaseClass1.ReadTable(strsql);
//实现分页
PagedDataSource objPds = new PagedDataSource();
objPds.DataSource = dt.DefaultView;
objPds.AllowPaging = true;
objPds.PageSize = 12;
int CurPage = Convert.ToInt32(this.LabelPage.Text);
objPds.CurrentPageIndex = CurPage - 1;
if (objPds.CurrentPageIndex < 0)
{
objPds.CurrentPageIndex = 0;
}
//只有一页时禁用上页、下页按钮
if (objPds.PageCount == 1)
{
LinkButtonPrev.Enabled = false;
LinkButtonNext.Enabled = false;
}
else//多页时
{
//为第一页时
if (CurPage == 1)
{
LinkButtonPrev.Enabled = false;
LinkButtonNext.Enabled = true;
}
//是最后一页时
if (CurPage == objPds.PageCount)
{
LinkButtonPrev.Enabled = true;
LinkButtonNext.Enabled = false;
}
}
this.LabelTotalPage.Text = Convert.ToString(objPds.PageCount);
GridView1.DataSource = objPds;
GridView1.DataBind();
}
//首页
protected void LinkButtonFirst_Click(object sender, EventArgs e)
{
this.LabelPage.Text = "1";
getGoods();
}
//上一页
protected void LinkButtonPrev_Click(object sender, EventArgs e)
{
this.LabelPage.Text = Convert.ToString(int.Parse(this.LabelPage.Text) - 1);
getGoods();
}
//下一页
protected void LinkButtonNext_Click(object sender, EventArgs e)
{
this.LabelPage.Text = Convert.ToString(int.Parse(this.LabelPage.Text) + 1); ;
getGoods();
}
//末页
protected void LinkButtonLast_Click(object sender, EventArgs e)
{
this.LabelPage.Text = this.LabelTotalPage.Text;
getGoods();
}
[解决办法]
int CurPage = Convert.ToInt32(this.LabelPage.Text); //界面上当前页数
objPds.CurrentPageIndex = CurPage - 1; //因为C#从0开始表示第1页,1表示第2页,...所以要把界面上的页面减1
if (objPds.CurrentPageIndex < 0) //因为页码最小是0,所以防止减多了,变成了负数,
{
objPds.CurrentPageIndex = 0;
}
[解决办法]
把当前界面Name属性为LabelPage的Label标签的Text属性赋给变量CurPage,即当前页面显示的页数,然后赋给对象objPds的CurrentPageIndex属性,即赋给对象objPds的当前页属性的索引。最后判断刚赋值的当前页索引是否小于0,若小于0,则赋为0,因为页码索引最小为0。