因为做一个大型的网站(www.usbbuilding.com),要用到翻页程序,以前都是自己用Linq to sql的Skip()和Take()方法来做。
但是今天这个很多More的页面,所以就想用一个能重复调用的方法,解决自己那个翻页功能,自己花了一个上午,写了一个Linq to sql 的方法,但感觉不好,就相当了用Aspnetpage来做。
代码如下:
protected void Page_Load(object sender, EventArgs e) {
if (!IsPostBack)
{
BingdingD_Newsread(); //绑定表的方法;
}
}
private void BingdingD_Newsread()
{
D_NewsreadModelDataContext Dns = new D_NewsreadModelDataContext(); // Linq to sql 类形成的model;
var News = from nm in Dns.D_Newsread where nm.Droped ==false select nm;
News = News.OrderByDescending(T=>T.CreateTime);
PagedDataSource pds = new PagedDataSource();
pds.DataSource = News.ToList(); //这里好像一定要Tolist();不然会有点错误;
pds.AllowPaging = true;
AspNetPager1.RecordCount = News.Count(); //记录总数;
pds.CurrentPageIndex = AspNetPager1.CurrentPageIndex - 1;
pds.PageSize = AspNetPager1.PageSize;
Repeater1.DataSource =pds;
Repeater1.DataBind();
}
protected void AspNetPager1_PageChanging(object src, Wuqi.Webdiyer.PageChangingEventArgs e)
{ //当页面页数改变时,执行这个方法;
AspNetPager1.CurrentPageIndex = e.NewPageIndex;
BingdingD_Newsread();
}
aspx 页面上的代码:
<!--翻页程序-->
<webdiyer:AspNetPager ID="AspNetPager1" runat="server" PageSize="4" FirstPageText="首页" LastPageText="末页" NextPageText="下一页" PrevPageText="上一页" AlwaysShow="true" onpagechanging="AspNetPager1_PageChanging" CssClass="paginator" CurrentPageButtonClass="cpb">
</webdiyer:AspNetPager>
<!--翻页程序-->
同时附上漂亮的CSS样式:
/*拍拍网风格*/
.paginator { font: 11px Arial, Helvetica, sans-serif;padding:10px 20px 10px 0px; margin: 0px;}
.paginator a {padding: 1px 6px; border: solid 1px #ddd; background: #fff; text-decoration: none;margin-right:2px}
.paginator a:visited {padding: 1px 6px; border: solid 1px #ddd; background: #fff; text-decoration: none;}
.paginator .cpb {padding: 1px 6px;font-weight: bold; font-size: 13px;border:none}
.paginator a:hover {color: #fff; background: #ffa501;border-color:#ffa501;text-decoration: none;}
/*淘宝风格*/
/* .paginator { font: 12px Arial, Helvetica, sans-serif;padding:10px 20px 10px 0; margin: 0px;}
.paginator a {border:solid 1px #ccc;color:#0063dc;cursor:pointer;text-decoration:none;}
.paginator a:visited {padding: 1px 6px; border: solid 1px #ddd; background: #fff; text-decoration: none;}
.paginator .cpb {border:1px solid #F50;font-weight:700;color:#F50;background-color:#ffeee5;}
.paginator a:hover {border:solid 1px #F50;color:#f60;text-decoration:none;}
.paginator a,.paginator a:visited,.paginator .cpb,.paginator a:hover
{float:left;height:16px;line-height:16px; 10px;margin-right:5px;text-align:center; min-10px;
white-space:nowrap;font-size:12px;font-family:Arial,SimSun;padding:0 3px;}
*/