webform 分页

界面:

 1 <%@ Page Language="C#" AutoEventWireup="true" CodeFile="Default.aspx.cs" Inherits="_Default" %>
 2 
 3 <!DOCTYPE html>
 4 
 5 <html xmlns="http://www.w3.org/1999/xhtml">
 6 <head runat="server">
 7     <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
 8     <title></title>
 9 </head>
10 <body>
11     <form id="form1" runat="server">
12         <div>
13             <asp:Repeater ID="Repeater1" runat="server">
14                 <HeaderTemplate>
15                     <table style="background-color: blue;  100%; text-align:center">
16                         <thead>
17                             <tr style="color: white;">
18                                 <td>编号</td>
19                                 <td>名称</td>
20                                 <td>品牌</td>
21                                 <td>上市时间</td>
22                                 <td>油耗</td>
23                                 <td>动力</td>
24                                 <td>排量</td>
25                                 <td>价格</td>
26                                 <td>图片</td>
27                             </tr>
28                         </thead>
29                         <tbody>
30                 </HeaderTemplate>
31                 <ItemTemplate>
32                     <tr style="background-color: #808080">
33                         <td><%#Eval("Code") %></td>
34                         <td><%#Eval("Name") %></td>
35                         <td><%#Eval("Brand") %></td>
36                         <td><%#Eval("Time") %></td>
37                         <td><%#Eval("Oil") %></td>
38                         <td><%#Eval("Power") %></td>
39                         <td><%#Eval("Exhaust") %></td>
40                         <td><%#Eval("Price") %></td>
41                         <td><%#Eval("Pic") %></td>
42                     </tr>
43                 </ItemTemplate>
44                 <FooterTemplate>
45                     </tbody>
46             </table>
47                 </FooterTemplate>
48             </asp:Repeater>
49             <div style=" 50%; position: relative; float: left; height: 25px; line-height: 25px; text-indent: 20px;">
50 51                 <asp:Label ID="Label_Sum" runat="server" Text="Label"></asp:Label>
52                 条记录,共
53                 <asp:Label ID="Label_Maxpage" runat="server" Text="Label"></asp:Label>
54                 页,第
55                 <asp:Label ID="Label_Nowpage" runat="server" Text="Label"></asp:Label>
56                 页|每页
57                 <asp:DropDownList ID="DropDownList2" runat="server" AutoPostBack="true" ></asp:DropDownList>
58                 条记录
59             </div>
60             <div style=" 30%; position: relative; float: right; height: 25px; line-height: 25px;">
61                 <asp:LinkButton ID="btn_First" runat="server">首页</asp:LinkButton>&nbsp
62                 <asp:LinkButton ID="btn_Prev" runat="server">上一页</asp:LinkButton>&nbsp
63                 <asp:LinkButton ID="btn_Next" runat="server">下一页</asp:LinkButton>&nbsp
64                 <asp:LinkButton ID="btn_Last" runat="server">尾页</asp:LinkButton>&nbsp
65                 <asp:DropDownList ID="DropDownList1" runat="server"></asp:DropDownList>
66                 <asp:Button ID="Button1" runat="server" Text="跳转" />
67             </div>
68         </div>
69     </form>
70 </body>
71 </html>
界面Default.aspx

后台:

 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 
 6 /// <summary>
 7 /// Car 的摘要说明
 8 /// </summary>
 9 public class Car
10 {
11     public Car()
12     {
13         //
14         // TODO: 在此处添加构造函数逻辑
15         //
16     }
17     public string Code { get; set; }
18     public string Name { get; set; }
19     public string Brand { get; set; }
20     public DateTime Time { get; set; }
21     public decimal Oil { get; set; }
22     public int Power { get; set; }
23     public decimal Exhaust { get; set; }
24     public decimal Price { get; set; }
25     public string Pic { get; set; }
26 }
Car
 1 using System;
 2 using System.Collections.Generic;
 3 using System.Linq;
 4 using System.Web;
 5 using System.Data.SqlClient;
 6 
 7 /// <summary>
 8 /// CarData 的摘要说明
 9 /// </summary>
10 public class CarData
11 {
12     SqlConnection conn = null;
13     SqlCommand cmd = null;
14     public CarData()
15     {
16         conn = new SqlConnection("server=.;database=mydb;user=sa;pwd=123");
17         cmd = conn.CreateCommand();
18     }
19 
20     public List<Car> Select()
21     {
22         List<Car> clist = new List<Car>();
23         cmd.CommandText = "select *from Car";
24 
25         conn.Open();
26         SqlDataReader dr = cmd.ExecuteReader();
27         if (dr.HasRows)
28         {
29             while (dr.Read())
30             {
31                 Car c = new Car();
32                 c.Code = dr[0].ToString();
33                 c.Name = dr[1].ToString();
34                 c.Brand = dr[2].ToString();
35                 c.Time = Convert.ToDateTime(dr[3]);
36                 c.Oil = Convert.ToDecimal(dr[4]);
37                 c.Power = Convert.ToInt32(dr[5]);
38                 c.Exhaust = Convert.ToInt32(dr[6]);
39                 c.Price = Convert.ToDecimal(dr[7]);
40                 c.Pic = dr[8].ToString();
41 
42                 clist.Add(c);
43             }
44         }
45         conn.Close();
46         return clist;
47     }
48 
49 
50     public List<Car> Select(int count,int nowpage)
51     {
52         List<Car> clist = new List<Car>();
53         cmd.CommandText = "select top "+count+" *from Car where Code not in (select top "+((nowpage-1)*count)+" Code from Car) ";
54 
55         conn.Open();
56         SqlDataReader dr = cmd.ExecuteReader();
57         if (dr.HasRows)
58         {
59             while (dr.Read())
60             {
61                 Car c = new Car();
62                 c.Code = dr[0].ToString();
63                 c.Name = dr[1].ToString();
64                 c.Brand = dr[2].ToString();
65                 c.Time = Convert.ToDateTime(dr[3]);
66                 c.Oil = Convert.ToDecimal(dr[4]);
67                 c.Power = Convert.ToInt32(dr[5]);
68                 c.Exhaust = Convert.ToInt32(dr[6]);
69                 c.Price = Convert.ToDecimal(dr[7]);
70                 c.Pic = dr[8].ToString();
71 
72                 clist.Add(c);
73             }
74         }
75         conn.Close();
76         return clist;
77     }
78 }
CarData
  1 using System;
  2 using System.Collections.Generic;
  3 using System.Linq;
  4 using System.Web;
  5 using System.Web.UI;
  6 using System.Web.UI.WebControls;
  7 
  8 public partial class _Default : System.Web.UI.Page
  9 {
 10     protected void Page_Load(object sender, EventArgs e)
 11     {
 12         if (!IsPostBack)
 13         {
 14             DropDownList2.Items.Clear();
 15             for (int i = 1; i <= Sum(); i++)
 16             {
 17                 DropDownList2.Items.Add(new ListItem(i.ToString(), i.ToString()));
 18             }
 19             
 20             DropDownList2.SelectedValue = "5";//默认每页五条
 21 
 22             Change();
 23         }
 24 
 25         btn_First.Click += btn_First_Click;//首页
 26         btn_Prev.Click += btn_Prev_Click;//上一页
 27         btn_Next.Click += btn_Next_Click;//下一页
 28         btn_Last.Click += btn_Last_Click;//尾页
 29         Button1.Click += Button1_Click;//跳转按钮
 30         DropDownList2.SelectedIndexChanged += DropDownList2_SelectedIndexChanged;//每页数据条数发生改变
 31     }
 32 
 33     //每页数据条数发生改变时执行
 34     private void Change()
 35     {
 36         int count = Convert.ToInt32(DropDownList2.SelectedValue);//每页的数据条数
 37         Label_Sum.Text = Sum().ToString();//总数据条数
 38         Label_Maxpage.Text = MaxPage().ToString();//总页数
 39         Label_Nowpage.Text = "1";//当前页
 40         Repeater1.DataSource = new CarData().Select(count, 1);
 41         Repeater1.DataBind();
 42 
 43         DropDownList1.Items.Clear();
 44         for (int i = 1; i <= MaxPage(); i++)
 45         {
 46             DropDownList1.Items.Add(new ListItem(i.ToString(), i.ToString()));
 47         }
 48         btn_First.Enabled = false;
 49         btn_Prev.Enabled = false;
 50         btn_Next.Enabled = true;
 51         btn_Last.Enabled = true;
 52     }
 53 
 54     //每页数据条数发生改变
 55     void DropDownList2_SelectedIndexChanged(object sender, EventArgs e)
 56     {
 57         Change();
 58         if (DropDownList2.SelectedValue == "18")
 59         {
 60             btn_Next.Enabled = false;
 61             btn_Last.Enabled = false;
 62         }
 63     }
 64 
 65 
 66     //跳转按钮
 67     void Button1_Click(object sender, EventArgs e)
 68     {
 69         int count = Convert.ToInt32(DropDownList2.SelectedValue);//每页的数据条数
 70         //按照页数获取绑定数据
 71         Repeater1.DataSource = new CarData().Select(count,Convert.ToInt32( DropDownList1.SelectedValue));
 72         Repeater1.DataBind();
 73         //修改显示页数
 74         Label_Nowpage.Text = DropDownList1.SelectedValue;
 75         if (Convert.ToInt32(Label_Nowpage.Text) <= 1)//若为首页禁用上一页和首页按钮
 76         {
 77             btn_First.Enabled = false;
 78             btn_Prev.Enabled = false;
 79             btn_Next.Enabled = true;
 80             btn_Last.Enabled = true;
 81         }
 82         if (Convert.ToInt32(Label_Nowpage.Text) >= MaxPage())//若为最后一页禁用下一页和尾页按钮
 83         {
 84             btn_Next.Enabled = false;
 85             btn_Last.Enabled = false;
 86             btn_First.Enabled = true;
 87             btn_Prev.Enabled = true;
 88         }
 89     }
 90 
 91     //首页
 92     void btn_First_Click(object sender, EventArgs e)
 93     {
 94         int count = Convert.ToInt32(DropDownList2.SelectedValue);//每页的数据条数
 95         //按照页数获取绑定数据
 96         Repeater1.DataSource = new CarData().Select(count, 1);
 97         Repeater1.DataBind();
 98         //修改显示页数
 99         Label_Nowpage.Text = "1";
100         //当前为首页禁用上一页和首页按钮
101         btn_First.Enabled = false;
102         btn_Prev.Enabled = false;
103 
104         btn_Next.Enabled = true;
105         btn_Last.Enabled = true;
106     }
107 
108     //上一页
109     void btn_Prev_Click(object sender, EventArgs e)
110     {
111         int count = Convert.ToInt32(DropDownList2.SelectedValue);//每页的数据条数
112         //获取当前页,计算上一页页数
113         int nextpage = Convert.ToInt32(Label_Nowpage.Text) - 1;
114         //按照页数获取绑定数据
115         Repeater1.DataSource = new CarData().Select(count, nextpage);
116         Repeater1.DataBind();
117         //修改显示页数
118         Label_Nowpage.Text = nextpage.ToString();
119         if (nextpage <= 1)//若为首页禁用上一页和首页按钮
120         {
121             btn_First.Enabled = false;
122             btn_Prev.Enabled = false;
123         }
124         btn_Next.Enabled = true;
125         btn_Last.Enabled = true;
126     }
127     //下一页
128     void btn_Next_Click(object sender, EventArgs e)
129     {
130         int count = Convert.ToInt32(DropDownList2.SelectedValue);//每页的数据条数
131         //获取当前页,计算下一页页数
132         int nextpage = Convert.ToInt32(Label_Nowpage.Text) + 1;
133         //按照页数获取绑定数据
134         Repeater1.DataSource = new CarData().Select(count, nextpage);
135         Repeater1.DataBind();
136         //修改显示页数
137         Label_Nowpage.Text = nextpage.ToString();
138         if (nextpage >= MaxPage())//若为最后一页禁用下一页和尾页按钮
139         {
140             btn_Next.Enabled = false;
141             btn_Last.Enabled = false;
142         }
143         btn_First.Enabled = true;
144         btn_Prev.Enabled = true;
145     }
146 
147 
148     //尾页
149     void btn_Last_Click(object sender, EventArgs e)
150     {
151         int count = Convert.ToInt32(DropDownList2.SelectedValue);//每页的数据条数
152         //按照页数获取绑定数据
153         Repeater1.DataSource = new CarData().Select(count, MaxPage());
154         Repeater1.DataBind();
155         //修改显示页数
156         Label_Nowpage.Text = MaxPage().ToString();
157         //若为最后一页禁用下一页和尾页按钮
158         btn_Next.Enabled = false;
159         btn_Last.Enabled = false;
160 
161         btn_First.Enabled = true;
162         btn_Prev.Enabled = true;
163     }
164 
165     //总的数据条数
166     public int Sum()
167     {
168         List<Car> clist = new CarData().Select();
169         int a = clist.Count;
170         return a;
171     }
172 
173     //总页数
174     public int MaxPage()
175     {
176         int count = Convert.ToInt32(DropDownList2.SelectedValue);//每页的数据条数
177         List<Car> clist = new CarData().Select();
178         int a = clist.Count;
179         int end = Convert.ToInt32(Math.Ceiling(a / (count * 1.0)));
180         return end;
181     }
182 }
Default.aspx.cs

原文地址:https://www.cnblogs.com/maxin991025-/p/6250105.html