今天整了半天才把DataList的分页搞定,下面把我的设计过程给大家讲讲:
前台代码:
代码
<
div
id
="newslistdiv"
>
< asp:DataList ID ="NewsList" runat ="server" Width ="820px" >
< HeaderTemplate >
< div >
< img src ="../loginimages/newslisthead.gif" alt ="" /></ div >
</ HeaderTemplate >
< ItemTemplate >
< dl >
< dd >
· < a href ="#" class ="rlk" onclick ='window.location.href="DetailNews.aspx?ID=<%#Eval("NewsID") % > "'> <% # Eval ( " NewsTitle " ) %> </ a >
<% # Eval ( " NewsTime " , " {0:yyyy-MM-dd} " ) %> < br />
</ dd >
</ dl >
</ ItemTemplate >
</ asp:DataList >
</ div >
< div style ="margin-bottom: 2px;" align ="center" >
< webdiyer:AspNetPager ID ="AspNetPager1" runat ="server" PageSize ="15" FirstPageText =" 首页 "
LastPageText =" 尾页 " NextPageText =" 下一页 " OnPageChanged ="AspNetPager1_PageChanged"
PrevPageText =" 上一页 " Width ="100%" AlwaysShow ="true" CssClass ="anpager" >
</ webdiyer:AspNetPager >
</ div >
< asp:DataList ID ="NewsList" runat ="server" Width ="820px" >
< HeaderTemplate >
< div >
< img src ="../loginimages/newslisthead.gif" alt ="" /></ div >
</ HeaderTemplate >
< ItemTemplate >
< dl >
< dd >
· < a href ="#" class ="rlk" onclick ='window.location.href="DetailNews.aspx?ID=<%#Eval("NewsID") % > "'> <% # Eval ( " NewsTitle " ) %> </ a >
<% # Eval ( " NewsTime " , " {0:yyyy-MM-dd} " ) %> < br />
</ dd >
</ dl >
</ ItemTemplate >
</ asp:DataList >
</ div >
< div style ="margin-bottom: 2px;" align ="center" >
< webdiyer:AspNetPager ID ="AspNetPager1" runat ="server" PageSize ="15" FirstPageText =" 首页 "
LastPageText =" 尾页 " NextPageText =" 下一页 " OnPageChanged ="AspNetPager1_PageChanged"
PrevPageText =" 上一页 " Width ="100%" AlwaysShow ="true" CssClass ="anpager" >
</ webdiyer:AspNetPager >
</ div >
后台代码:
代码
protected
void
Page_Load(
object
sender, EventArgs e)
{
if ( ! IsPostBack)
{
BindNewsDatalist();
}
}
//绑定DataList的数据源
private void BindNewsDatalist()
{
FJDWS.BusinessLogic.LNewsManager lnewsmanager = new FJDWS.BusinessLogic.LNewsManager();
this .AspNetPager1.RecordCount = lnewsmanager.FindAll().Count;
PagedDataSource pds = new PagedDataSource(); // 定义一个PagedDataSource类来执行分页功能
pds.DataSource = lnewsmanager.FindAll();
pds.AllowPaging = true ;
pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1 ;
pds.PageSize = AspNetPager1.PageSize;
this .NewsList.DataSource = pds;
NewsList.DataBind();
}
protected void AspNetPager1_PageChanged( object src, EventArgs e)
{
// AspNetPager1.CurrentPageIndex = e.NewPageIndex;
BindNewsDatalist();
}
{
if ( ! IsPostBack)
{
BindNewsDatalist();
}
}
//绑定DataList的数据源
private void BindNewsDatalist()
{
FJDWS.BusinessLogic.LNewsManager lnewsmanager = new FJDWS.BusinessLogic.LNewsManager();
this .AspNetPager1.RecordCount = lnewsmanager.FindAll().Count;
PagedDataSource pds = new PagedDataSource(); // 定义一个PagedDataSource类来执行分页功能
pds.DataSource = lnewsmanager.FindAll();
pds.AllowPaging = true ;
pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1 ;
pds.PageSize = AspNetPager1.PageSize;
this .NewsList.DataSource = pds;
NewsList.DataBind();
}
protected void AspNetPager1_PageChanged( object src, EventArgs e)
{
// AspNetPager1.CurrentPageIndex = e.NewPageIndex;
BindNewsDatalist();
}