还有就是一个Paging属性,他的作用就是分页,输出分页的html这个属性很经典
1
/**//// <summary>
2
/// 开始分页
3
/// </summary>
4
/// <returns></returns>
5
protected DataTable Paging
6
{
7
get
8
{
9
//知道了startAt,分页也很容易了,现在根据startAt得到当前是第几页,注意,现在这里的页数也是暂时从0开始的
10
int pageNumber = (this.startAt + this.maxResults - 1) / this.maxResults;
11
DataTable dt = new DataTable();
12
dt.Columns.Add("html");
13
DataRow dr = dt.NewRow();
14
//暂时得到当前页的html连接,注意这里当真正显示页数的时候要+1
15
dr["html"] = pagingNumberHtml(startAt,pageNumber+1,false);
16
dt.Rows.Add(dr);
17
//前面显示10页,如果有的话
18
int previousPagesCount = 10;
19
//循环把前面页的html连接插到前面去
20
for (int i = pageNumber - 1; i >= 0 && i >= pageNumber - previousPagesCount; i--)
21
{
22
DataRow r = dt.NewRow();
23
r["html"] = pagingNumberHtml(i*this.maxResults,i+1,true);
24
dt.Rows.InsertAt(r,0);;
25
}
26
//后面也显示10页,如果有的话
27
int nextPagesCount = 10;
28
for (int i = pageNumber + 1; i <= this.pageCount && i <= pageNumber + nextPagesCount; i++)
29
{
30
DataRow r = dt.NewRow();
31
r["html"] = pagingNumberHtml(i*this.maxResults,i+1,true);
32
dt.Rows.Add(r);
33
}
34
//添加下一页的超级连接
35
DataRow lastRow = dt.NewRow();
36
lastRow["html"] = "<a href='Search.aspx?q="+this.Query+"&start="+(pageNumber+1)*this.maxResults+"'>下一页</a>";
37
dt.Rows.Add(lastRow);
38
return dt;
39
40
}
作者:古道轻风