Web 分页
以Car表为例分页
页面以table展示数据分页 页面代码
<asp:Repeater ID="Repeater1" runat="server">
<HeaderTemplate>
<table style="background-color:navy;text-align:center;width:80%;">
<thead>
<tr style="color:white;">
<td>编号</td>
<td>名称</td>
<td>铭牌</td>
<td>日期</td>
<td>油耗</td>
<td>动力</td>
<td>轴距</td>
<td>价格</td>
</tr>
</thead>
<tbody>
</HeaderTemplate>
<ItemTemplate>
<tr style="background-color:white;">
<td><%#Eval("Code") %></td>
<td><%#Eval("Name") %></td>
<td><%#Eval("Brand") %></td>
<td><%#Eval("Time") %></td>
<td><%#Eval("Oil") %></td>
<td><%#Eval("Powers") %></td>
<td><%#Eval("Exhaust") %></td>
<td><%#Eval("Price") %></td>
</tr> </ItemTemplate>
<FooterTemplate>
</tbody>
</table>
</FooterTemplate>
</asp:Repeater> 当前第【<asp:Label ID="Label_now" runat="server" Text="Label"></asp:Label>】页   
共【<asp:Label ID="Label_max" runat="server" Text="Label"></asp:Label>】页    
<asp:LinkButton ID="LinkButton_frist" runat="server">首页</asp:LinkButton>   
<asp:LinkButton ID="LinkButton_prve" runat="server">上一页</asp:LinkButton>   
<asp:LinkButton ID="LinkButton_next" runat="server">下一页</asp:LinkButton>   
<asp:LinkButton ID="LinkButton_last" runat="server">尾页</asp:LinkButton>   
跳转到<asp:DropDownList ID="DropDownList_jump" AutoPostBack="true" runat="server"></asp:DropDownList>
页面显示

分页关键:每页显示多少条数据 显示的是第几页数据,数据访问类分页查询方法
public List<Car> Select(int pagecount,int pagenumber)
{
List<Car> clist = new List<Car>();
cmd.CommandText = " select top " + pagecount + "* from Car where Code not in(select top " + (pagecount * (pagenumber - )) + " Code from Car);";
conn.Open();
SqlDataReader dr = cmd.ExecuteReader();
if (dr.HasRows)
{
while (dr.Read())
{
Car c = new Car();
c.Code = dr[].ToString();
c.Name = dr[].ToString();
c.Brand = dr[].ToString();
c.Time = Convert.ToDateTime(dr[]);
c.Oil = Convert.ToDecimal(dr[]);
c.Powers = Convert.ToInt32(dr[]);
c.Exhaust = Convert.ToInt32(dr[]);
c.Price = Convert.ToDecimal(dr[]);
clist.Add(c);
}
}
conn.Close();
return clist;
}
后台代码
int pagecount = ;//每页显示的数据条数
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)//加载页面展示数据
{
Repeater1.DataSource = new CarData().Select(pagecount,);
Repeater1.DataBind();
Label_now.Text = "";
Label_max.Text = Maxpage().ToString();
for (int i = ; i <= Maxpage(); i++)//跳转下拉列表添加数据
{
DropDownList_jump.Items.Add(new ListItem(i.ToString(), i.ToString()));
} }
LinkButton_frist.Click += LinkButton_frist_Click;//首页
LinkButton_prve.Click += LinkButton_prve_Click;//上一页
LinkButton_next.Click += LinkButton_next_Click;//下一页
LinkButton_last.Click += LinkButton_last_Click;//尾页
DropDownList_jump.SelectedIndexChanged += DropDownList_jump_SelectedIndexChanged;//跳转页面 }
void LinkButton_frist_Click(object sender, EventArgs e)//首页
{
//数据绑定上去
Repeater1.DataSource = new CarData().Select(pagecount, );
Repeater1.DataBind();
//当前页数改变
Label_now.Text = "";
LinkButton_next.Enabled = true;
LinkButton_prve.Enabled = false;
}
public int Maxpage()//最大页数
{
List<Car> clist = new CarData().Select();
return Convert.ToInt32(Math.Ceiling(clist.Count / (pagecount * 1.0)));
} void LinkButton_prve_Click(object sender, EventArgs e)//上一页
{
// 显示第几页
int pagenumber = Convert.ToInt32(Label_now.Text) -;
//数据绑定上去
Repeater1.DataSource = new CarData().Select(pagecount, pagenumber);
Repeater1.DataBind();
//当前页数改变
Label_now.Text = pagenumber.ToString();
// 设置上下页按钮时候可用
if (pagenumber <= )
{
LinkButton_prve.Enabled = false;
}
LinkButton_next.Enabled = true;
} void LinkButton_next_Click(object sender, EventArgs e)//下一页
{
// 显示第几页
int pagenumber = Convert.ToInt32(Label_now.Text) + ;
//数据绑定上去
Repeater1.DataSource = new CarData().Select(pagecount, pagenumber);
Repeater1.DataBind();
//当前页数改变
Label_now.Text = pagenumber.ToString();
// 设置上下页按钮时候可用
if (pagenumber >= Maxpage())
{
LinkButton_prve.Enabled = true;
}
LinkButton_next.Enabled = false;
} void LinkButton_last_Click(object sender, EventArgs e)//尾页
{
//数据绑定上去
Repeater1.DataSource = new CarData().Select(pagecount, Maxpage());
Repeater1.DataBind();
//当前页数改变
Label_now.Text = Maxpage().ToString();
//按钮改变
LinkButton_next.Enabled = false;
LinkButton_prve.Enabled = true;
} void DropDownList_jump_SelectedIndexChanged(object sender, EventArgs e)//跳转页面
{
//绑定数据
Repeater1.DataSource = new CarData().Select(pagecount, Convert.ToInt32(DropDownList_jump.SelectedValue));
Repeater1.DataBind();
//显示当前 为第几页
Label_now.Text = DropDownList_jump.SelectedValue;
// 判断页数设置上下页按钮样式
if (Convert.ToInt32(DropDownList_jump.SelectedValue) >= Maxpage())// 大于最大页数
{
LinkButton_next.Enabled = false;
LinkButton_prve.Enabled = true;
}
else if (Convert.ToInt32(DropDownList_jump.SelectedValue) <= )//小于最小页数
{
LinkButton_next.Enabled = true;
LinkButton_prve.Enabled = false;
}
else
{
LinkButton_next.Enabled = true;
LinkButton_prve.Enabled = true;
}
}
Web 分页的更多相关文章
- C# Web分页功能实现
无论是网站还是APP分页功能都是必不可少的.为什么使用分页呢? 1,加载速度快,不会占用服务器太多资源,减少服务器压力. 2,减少数据库压力. 3,提升用户体验. 那么我们常用的分页方法有两种. 1, ...
- python web 分页组件
闲来无事便写了一个易使用,易移植的Python Web分页组件.使用的技术栈是Python.Django.Bootstrap. 既然是易使用.易移植的组件,首先介绍一下其在django框架中的调用方式 ...
- [转]Oracle分页之二:自定义web分页控件的封装
本文转自:http://www.cnblogs.com/scy251147/archive/2011/04/16/2018326.html 上节中,讲述的就是Oracle存储过程分页的使用方式,但是如 ...
- python实现web分页日志查看
当我们维护一个网站时,无论前台还是后台,经常会出现各种个样的问题.有时候问题很难直观的发现,这个时候只能查看各种日志来跟踪问题.但是查看日志有各种个样的问题.首先,要用各种工具登陆到服务器,这个有时候 ...
- java web 分页实现
分页实现的效果: ///////// /////////////////////////////////////////////////////// /////////////////// ...
- java web分页查询初试
ssh2分页查询初试,放着记录学习一下. entity:student.java: package com.zte.entity; /** * 数据持久化,跟数据库的的相应的表的字段是对应的. * * ...
- web分页控件AspNetPager的使用
首先要先引用AspNetPager.dll文件 然后在<html>上面添加下面代码: <%@ Register Assembly="AspNetPager" Na ...
- web分页打印
添加css: page-break-before:always 实现分页 window.print()//实现打印
- Strut2与Hibernate的一个web分页功能
代码没有进行过多的封装,可能看起来有点action代码部分,hibernate在这里只起到了一个查询记录集的作用. import java.util.ArrayList; import java.ut ...
随机推荐
- 电子商务网站SQL注入项目实战一例
故事A段:发现整站SQL对外输出: 有个朋友的网站,由于是外包项目,深圳某公司开发的,某天我帮他检测了一下网站相关情况. 我查看了页面源代码,发现了个惊人的事情,竟然整站打印SQL到Html里,着实吓 ...
- 单元测试模拟框架:Nsubstitute
Nsubstitute是一个开源的框架,源码是C#实现的.你可以在这里获得它的源码:https://github.com/nsubstitute/NSubstitute NSubstitut ...
- 多线程中的锁系统(二)-volatile、Interlocked、ReaderWriterLockSlim
上章主要讲排他锁的直接使用方式.但实际当中全部都用锁又太浪费了,或者排他锁粒度太大了,本篇主要介绍下升级锁和原子操作. 阅读目录 volatile Interlocked ReaderWriterLo ...
- [公告]Senparc.Weixin v4.7.0 升级说明(2016-08-08)
本次升级包含了除QY以外所有的类库,升级内容包括: 1.重构Conatainer结构,删除 ItemCollection 属性,直接使用ContainerBag加入到缓存: 2.重构IContaine ...
- Senparc.Weixin.MP SDK 微信公众平台开发教程(十七):个性化菜单接口说明
前不久微信上线了个性化菜单接口,Senparc.Weixin SDK也已经同步更新. 本次更新升级Senparc.Weixin.MP版本到v13.5.2,依赖Senparc.Weixin版本4.5.4 ...
- IE浏览器打开chorme浏览器,如何打开其他浏览器
看到这个标题是否感觉奇怪,为什么要用IE浏览器打开chorme或者火狐浏览器等,这个功能从开发者来说不是一个好的需求,但确实是真实存在的,有用公司的背景历史比较复杂,而且公司有过长期的开发历史,这导致 ...
- Atitit 补充说明 sql知识图谱与线路图attilax总结补充说明
Atitit 补充说明 sql知识图谱与线路图attilax总结补充说明 1. 常见编程语言的分类 :命令式语言.函数式语言.逻辑语言1 1.1. 按照编程语言的代际划分,又2gl,3gl,4gl ...
- C#设计模式-享元模式
在软件开发过程,如果我们需要重复使用某个对象的时候,如果我们重复地使用new创建这个对象的话,这样我们在内存就需要多次地去申请内存空间了,这样可能会出现内存使用越来越多的情况,这样的问题是非常严重,然 ...
- 一篇通俗易懂的CSS层叠顺序与层叠上下文研究
网上有很多这方面的教程,但不是苦涩难懂就是从哪copy过来的,反正很长一段时间我是没看懂,时间长了也没打算去研究了,主要原因是,基本上很少会遇到那些问题(所以说啊,要是没有研究精神的才懒得管它).但自 ...
- LINQ系列:LINQ to SQL Group by/Having分组
1. 简单形式 var expr = from p in context.Products group p by p.CategoryID into g select g; foreach (var ...