• ASP.net分页实现


    复制代码
      1 public partial class _Default : System.Web.UI.Page
      2 {
      3     private mydbDataContext _context = new mydbDataContext();//建立连接
      4     private const int PAGESIZE = 3;//定义每页大小为三个
      5 
      6     //取得分页信息************重要***********
      7     public List<Car> GetPageCar(int pageNo)
      8     {
      9         var query = _context.Car.Skip(PAGESIZE * (pageNo - 1)).Take(PAGESIZE);
     10         return query.ToList();
     11     }
     12 
     13     //获取总页数************重要***********
     14     public int GetPageCount()
     15     {
     16         int rowsCount = _context.Car.Count();//获得总行数
     17         int pageCount = (int)Math.Ceiling(1.0 * rowsCount / PAGESIZE);
     18         return pageCount;
     19     }
     20 
     21 
     22     protected void Page_Load(object sender, EventArgs e)
     23     {
     24         int nowPage =1;//初始页为1
     25         if (Request["pageno"]!=null)//第一次打开pageno为空,当不为空的时候就给nowpage赋值
     26         {
     27             nowPage = Convert.ToInt32(Request["pageno"]);
     28         }
     29         //显示列表中的信息
     30         ShowPageCars(nowPage);
     31 
     32         //显示上一页下一页的数据,首页和尾页
     33         ShowPrevNextLink(nowPage);
     34        
     35     }
     36 
     37     //显示上一页下一页首页尾页信息
     38     private void ShowPrevNextLink(int nowPage)
     39     {
     40         //给上一页,下一页数据
     41         int pageCount = GetPageCount();
     42         //控制下一页连接
     43         if (nowPage == pageCount)
     44         {
     45             linkNext.Enabled = false;
     46             linkLast.Enabled = false;
     47         }
     48         else
     49         {
     50             linkNext.Enabled = true;
     51             linkLast.Enabled = true;
     52             linkNext.NavigateUrl = "Default.aspx?pageno=" + (nowPage + 1).ToString();
     53             //控制尾页
     54             linkLast.NavigateUrl = "Default.aspx?pageno=" + pageCount;
     55         }
     56         //控制上一页连接
     57         if (nowPage == 1)
     58         {
     59             linkPrev.Enabled = false;
     60             linkFrist.Enabled = false;
     61         }
     62         else
     63         {
     64             linkPrev.Enabled = true;
     65             linkFrist.Enabled = true;
     66             linkPrev.NavigateUrl = "Default.aspx?pageno=" + (nowPage - 1).ToString();
     67             //控制首页连接
     68             linkFrist.NavigateUrl = "Default.aspx?pageno=1";
     69         }
     70     }
     71 
     72     //显示列表信息
     73     private void ShowPageCars(int nowPage)
     74     {
     75         List<Car> list = GetPageCar(nowPage);
     76         //给Repeater数据
     77         Repeater1.DataSource = list;
     78         Repeater1.DataBind();
     79     }
     80 
     81     //跳转
     82     protected void btnGo_Click(object sender, EventArgs e)
     83     {
     84         if (txtPageNO.Text == "")
     85         {
     86 
     87         }
     88         else
     89         {
     90             int goNo = Convert.ToInt32(txtPageNO.Text);
     91             if (goNo < 1)
     92             {
     93                 Response.Redirect("Default.aspx");
     94             }
     95             else if (goNo > GetPageCount())
     96             {
     97                 Response.Redirect("Default.aspx?pageno=" + GetPageCount());
     98             }
     99             else
    100             {
    101                 Response.Redirect("Default.aspx?pageno=" + goNo);
    102             }
    103         }
    104     }
    105 }
    复制代码

    效果图如下

     首页(name): linkFirst

    上一页(name):linkPrev

    下一页(name):,linkNext

    尾页(name):linkLast

    以上都是HyperLink控件(超链接)

    文本框(name):txtPageNo    

    跳转按钮(name):btnGo

    分页问题,每次点击页面都将从新加载.可考虑Ajax优化

  • 相关阅读:
    矩阵快速幂 ZOJ 3497 Mistwald
    线段树(多棵) HDOJ 4288 Coder
    线段树(区间操作) POJ 3325 Help with Intervals
    BestCoder Round #75
    BestCoder Round #74 (div.2)
    DP ZOJ 2745 01-K Code
    Java IO file文件的写入和读取及下载
    Java时间和时间戳的相互转换
    Base64编码密钥时关于换行的几个问题。
    解决IllegalBlockSizeException:last block incomplete in decryption异常
  • 原文地址:https://www.cnblogs.com/IT1517/p/4768340.html
Copyright © 2020-2023  润新知