您的位置:首页 > 其它

分页

2015-08-09 15:23 429 查看
两个最重要的变量:
PageSize - 每页显示的记录条数
PageNO - 当前要显示第几页

两个重要的函数:
1.获取指定页面记录的函数。
2.获取总页数的函数。

最核心的:"上一页"和"下一页"
1.使用超链接HyperLink控制。
2.使用代码给HyperLink的NavigateURL赋值。
linkNext.NavigateUrl = "Default.aspx?pageno=" + (nowPage + 1).ToString();
linkPrev.NavigateUrl = "Default.aspx?pageno=" + (nowPage - 1).ToString();
nowPage是用Request["pageno"]获取过来的当前页号。

完善1:控制“上一页”“下一页”是否可用
1.是否是首页。nowPage==1??
2.是否是尾页。调用获取总页数的函数,看看nowPage是否与之相等

完善2:加“首页”和尾页
1.首页,是超链接,总是导到第一页去。
linkFirst.NavigateUrl = "Default.aspx?pageno=1";
2.尾页,是超链接,总是导到与总页数相同的那相页号上去。
linkLast.NavigateUrl = "Default.aspx?pageno=" + pageCount;
完善3:随机跳转
1.文本框+按钮
2.使用Response.Redirect("地址")跳转
3.判断边界。小于第一页,大于最后一页。
int goNO = Convert.ToInt32(txtPageNo.Text);
if (goNO < 1)
{
Response.Redirect("Default.aspx");
}
else if (goNO > GetPageCount())
{
Response.Redirect("Default.aspx?pageno=" + GetPageCount());
}
else
{
Response.Redirect("Default.aspx?pageno="+goNO);
}

public partial class _Default : System.Web.UI.Page
{
private MyDBDataContext _Context = new MyDBDataContext();
private const int PageSize = 3;

public List <Car> GetPageCar(int PageNo)
{
var query = _Context.Car.Skip(PageSize * (PageNo - 1)).Take(PageSize );
return query.ToList();
}

public int GetPageCount()
{
int rowsCount = _Context.Car.Count();
int PageCount = (int)Math.Ceiling(1.0*rowsCount /PageSize );
return PageCount;
}

protected void Page_Load(object sender, EventArgs e)
{
int nowPage = 1;
if (Request["pageno"] != null)
{
nowPage = Convert.ToInt32(Request["pageno"]);
}
List<Car> list = GetPageCar(nowPage );
//给repeater数据
Repeater1.DataSource = list;
Repeater1.DataBind();

//给上一页下一页数据
int PageCount = GetPageCount();

//控制下一页
if (PageCount == nowPage)
{
linkNext.Enabled = false;
}
else
{
linkNext.Enabled = true;
linkNext.NavigateUrl = "Default.aspx?pageno=" + (nowPage + 1).ToString();
}

//控制上一页
if (nowPage == 1)
{
linkPrev.Enabled = false;
}
else
{
linkPrev.Enabled = true;
linkPrev.NavigateUrl = "Default.aspx?pageno=" + (nowPage - 1).ToString();
}

//控制首页
linkFirst.NavigateUrl = "Default.aspx?pageno=1";
//控制尾页
linkLast.NavigateUrl = "Default.aspx?pageno=" + PageCount;

}

//跳转
protected void btnGo_Click(object sender, EventArgs e)
{
int GoNo = Convert.ToInt32(txtPageNo.Text );
if (GoNo < 1)
{
Response.Redirect("Default.aspx");
}
else if (GoNo > GetPageCount())
{
Response.Redirect("Default.aspx?pageno=" + GetPageCount());
}
else
{
Response.Redirect("Default.aspx?pageno=" + GoNo);
}
}
}
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: