DotLucene搜索索引(下)
还有就是一个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
}
1
/// <summary>2
/// 开始分页3
/// </summary>4
/// <returns></returns>5
protected DataTable Paging6
{7
get8
{ 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连接,注意这里当真正显示页数的时候要+115
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
}
本文来自博客园,作者:古道轻风,转载请注明原文链接:https://www.cnblogs.com/88223100/archive/2008/08/18/1270626.html



浙公网安备 33010602011771号