用现成的 AspNetPager.dll 做翻页功能
在.aspx文件中头部加
<%@Register TagPrefix="Webdiyer" Namespace="Wuqi.Webdiyer" Assembly="aspnetpager"%>
页面里除了
要有datalist之类的控件:
******************************************************
<asp:DataList ID="DataList1" runat="server" HorizontalAlign="Center">
<ItemTemplate>
<table width="760" border="0" cellspacing="0" cellpadding="0" style="border-bottom:1px dotted #ccc;" id="table5" >
<tr>
<td height="20" style="width: 572px" align="left">
·<font color="blue"><a href="../A/<%# Eval("ID") %>.html" target="_blank"><%#Eval("title")%></a></font>
</td>
<td class="index_name1" width="100" align="right" valign="middle"><%# Convert.ToDateTime(DataBinder.Eval
(Container.DataItem, "posttime")).ToShortDateString().ToString().Trim() %></td>
</tr>
</table>
</ItemTemplate>
</asp:DataList>
******************************************************
还要加上翻页的
******************************************************
<div>
<table border="0" cellpadding="0" style="border-collapse: collapse; background-color: #f5f5f5;" width="760" id="table1"
class="mu6" height="20">
<tr>
<td style="height: 25px">
<Webdiyer:AspNetPager id="pager" runat="server" HorizontalAlign="Right" FirstPageText="<<"
LastPageText=">>" PrevPageText="<" NextPageText=">" NumericButtonTextFormatString="-{0}-" Width="760px"
ShowCustomInfoSection="Left" ShowBoxThreshold="2" PageSize="30" OnPageChanged="pager_PageChanged"
InputBoxClass="text2" TextAfterInputBox="" />
</td>
</tr>
</table>
</div>
******************************************************
在.cs文件中要有以下内容:
其中 z_list 是存储过程
public void FirstBindData()
{
cmd = new SqlCommand("z_list", conn);
cmd.CommandType = CommandType.StoredProcedure;
cmd.Parameters.Add("@pageindex", 1);
cmd.Parameters.Add("@pagesize", 1);
cmd.Parameters.Add("@docount", true);
conn.Open();
pager.RecordCount = (int)cmd.ExecuteScalar();
conn.Close();
BindData();
}
public void BindData()
{
cmd = new SqlCommand();
cmd.Connection = conn;
cmd.CommandType = CommandType.StoredProcedure;
cmd.CommandText = "z_list";
cmd.Parameters.Add("@pageindex", pager.CurrentPageIndex);
cmd.Parameters.Add("@pagesize", pager.PageSize);
cmd.Parameters.Add("@docount", false);
conn.Open();
DataList1.DataSource = cmd.ExecuteReader();
DataList1.DataBind();
conn.Close();
AddCustomText();
}
public void AddCustomText()
{
pager.CustomInfoText = "资讯总数:<font color=\"blue\"><b>" + pager.RecordCount.ToString() + "</b></font>";
pager.CustomInfoText += " 总页数:<font color=\"blue\"><b>" + pager.PageCount.ToString() + "</b></font>";
pager.CustomInfoText += " 当前页:<font color=\"red\"><b>" + pager.CurrentPageIndex.ToString() + "</b></font>";
}
protected void pager_PageChanged(object src, Wuqi.Webdiyer.PageChangedEventArgs e)
{
pager.CurrentPageIndex = e.NewPageIndex;
BindData();
}
*********************************************************
存储过程:
CREATE proc z_list
(@pagesize int,
@pageindex int,
@docount bit)
as
set nocount on
if(@docount=1)
select count(ID) from DATATABLE
else
begin
declare @indextable table(table_id int identity(1,1),ID int)
declare @PageLowerBound int
declare @PageUpperBound int
set @PageLowerBound=(@pageindex-1)*@pagesize
set @PageUpperBound=@PageLowerBound+@pagesize
set rowcount @PageUpperBound
insert into @indextable(ID) select ID from DATATABLE order by id desc
select O.* from DATATABLE O,@indextable t where O.ID=t.ID
and t.table_id>@PageLowerBound and t.table_id<=@PageUpperBound order by t.table_id
end
set nocount off
GO
但是这样写的缺点就是无法实现list页面用参数来实现翻页,爬虫就没办法爬到第二页去了。
如果爬到第二页、第三页。我下一篇会给出来答案。