AspNetPager和Linq to sql 的完美结合

     因为做一个大型的网站(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;}
*/

原文地址:https://www.cnblogs.com/liuming8208/p/1894580.html