分页

1.首先在数据库中建立一个视图(在aspx中sql查询语句是view_student不是student),在视图里创建
create view view_student--创建视图
as row_number 行号 一条数据是一行 分页功能要根据行数运算
select *,row_number() over(order by stuNo desc) as rowindex from Student
创建一个名为rowindex的字段,row_number() 函数是返回行号,要与over连用
2.在项目中创建一个studentlist.aspx.repeateList控件用户重复的数据简单化,
-----------在studentList.aspx 中的代码
<table>
<tr>
<td>序号</td>
<td>学号</td>
<td>姓名</td>
<td>性别</td>
<td>年龄</td>
<td>操作</td>
</tr>
<asp:Repeater ID="rptStudent" runat="server">
<ItemTemplate>Repeater如果是一个表格,那么它就有多个行组成的,而它的每一行显示的数据,就是由ItemTemplate控制的
<tr>
<td><%#Eval("rowindex")%></td>--------------<%#Eval("字段")%>用于绑定数据
<td><%#Eval("stuNo")%></td>
<td><%#Eval("stuName")%></td>
<td><%#Eval("sex")%></td>
<td><%#Eval("birthday")%></td>
<td>操作</td>
</tr>
</ItemTemple>
</asp:Repeater>
</table>
--------------------在studentList.aspx.cs 中的代码
在直观的浏览器中分页要理解的是多少页,一页有多少行(pageindex,pagesize)pageindex当前页码pagesize当前页码有几条数据
如何将数据库中几百万的数据引进来,分开要用什么方法,
在dal层中定义方法-----------------------------------------------------------------------------------
public int GetRecordCount()//获取学生总数,方便用于分多少页,一页包括多少数据,方便计算
{
string sql="select count(*) from Student";
return (int)Sqlhelper.GetSingleData(sql);
}
public DataSet GetPageindexData(int pageindex,int pagesize)将总数分成几页,一页几条数据,数据成“团”出现,用set返回
{
从view_Student中获取数据
string sql="select * from view_Student where rowindex between @startrowindex and @endrowindex";
sqlparameter[] sps={
new sqlparameter("@starrowindex",(pageindex-1)*pagesize+1),
new sqlparameter("@endrowindex",pageindex*pagesize)
};
return sqlhelper.Getdataset(sql,sps);
}
在DAL中定义方法,在BLL中调用一下方法
-------------在BLL中定义一下方法
public int GetRecordCount()
{
return stuDal.GetRecordCount(); 要现在DAl中实例化一下Student,才可以调用一下stuDal.GetRecordCount();
}
public DataSet GetPageindexData(int pageindex, int pagesize)
{
return stuDal.GetPageindexData(pageindex,pagesize);
}
---------------------------------------------------------------
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
bindRepeater(1,3);//(a,b)a代表第几页,b代表有几个数据
}
}
public void bindRepeater(int pageindex,int pagesize)
{
Student stubll=new Student();
rptStudent.DataSource =stubll.GetpageindexData(pageindex, pagesize);控件的数据来源
rptstudent.DataBind();绑定数据
}
----------------------------
create view_student create view View_Student as select *,Row_Number(),over(order by StuNo desc) as rowindex from Student
as
select *,Row_Number(), over() as rowindex from student
--------------------------------------------------------------------------------------------------
将出生日期装换成年龄
public static GetAge(object birthday)//需要传参数
{
int NowYear=DateTime.Now.year;
int OldYear=((DateTime)birthday).Year;
return (NoweYear-OldYear).ToString();
}
在.aspx 的页面绑定数据的页面<td><%#GetAge(Eval("birthday"))%></td>这样调用方法,把数据绑定上面
---------------------------------------------------------------------------------------------------------
上下页 需要考虑的是 一共多少数据,每个页面存放多少数据,
当pageindex<=1时,builder.Append(" 首页 下一页");
else
builder.Append(<a href='href="StudentList.aspx?pindex=1"'>首页</a>);变成超链接
builder.Append(<a href='href="StudentList.aspx?pindex='"+(pindex-1)+"'"'>上一页页</a>);变成超链接
当pageindex=pageCount时
if(pageindex==pageCount)
{
builder.Append(" 下一页 末页");
}
else
{
builder.Append("<a href='StudentList.aspx?pindex=" + (pageindex + 1) + "'>下一页</a>");
builder.Append("<a href='StudentList.aspx?pindex="+pageCount+"'>末页<a/>");
}
!!----------!!! Pager = builder.ToString();
<%=%> 里面放的变量名 <p>Welcome to Beginning ASP.NET 3.5 on <%= DateTime.Now.ToString() %></p>
Welcome to Beginning ASP.NET 3.5 on 2009-11-10 15:53:08
<%#%> 这里是数据的绑定 只能用在数据绑定控件中

----------------------------------------------------------------------------------------------------------
public string GetPager(ref int pageindex, int pagecount)
{
if (pageindex < 1)//如果页码<1,则当前页码为第一页
{
pageindex = 1;
}
if (pageindex > pagecount)
{
pageindex = pagecount;
}
StringBuilder sb = new StringBuilder();
if (pageindex == 1)
{
sb.Append(" 首页 上页");
}
else
{
sb.Append(" <a href='javascript:LoatData(1)'>首页</a>");
sb.Append(" <a href='javascript:LoatData(" + (pageindex - 1) + ")'>上页</a>");
}
if (pageindex == pagecount)
{
sb.Append(" 下页 末页 ");
}
else
{
sb.Append(" <a href='javascript:LoatData(" + (pageindex + 1) + ")'>下页</a> ");
//sb.Append(" <a herf='javascript:LoatData(" + (pagecount) + ")'>末页</a>");
sb.Append(" <a href='javascript:LoatData(" + (pagecount) + ")'>末页</a>");
}
return sb.ToString();
}

 

          <div class="page_nav"> <%=Pager%> </div>public string Pager { set; get; }int RecordCount, PageCount, PageSize, PageIndex;protected void Page_Load(object sender, EventArgs e){//先获数据库里取有多少条数据RecordCount = ProductBLL.GetRecordCount();PageSize = 2;PageCount=(int)Math.Ceiling(RecordCount*1.0/PageSize);PageIndex =1;//定义开始从第一页开始if (!string.IsNullOrEmpty(Request["pindex"])){ PageIndex=Convert.ToInt32(Request["pindex"]);}if (!IsPostBack){//下方注释不能删除//ProductList = ProductBLL.GetProduct();//Repeater1.DataSource = ProductBLL.GetProduct();//Repeater1.DataBind();ViewState["pindex"] = PageIndex;DataTable dt = Binder(PageIndex,PageSize);Repeater1.DataSource = dt;Repeater1.DataBind();GetPager(PageIndex, PageCount);}}public void GetPager(int pageindex, int pagesize){if (pageindex < 1){ PageIndex=1;}if (pageindex > PageCount){pageindex = PageCount;}StringBuilder sb = new StringBuilder();if (pageindex < 1){sb.Append("首页~~~上一页");}else{sb.Append("<a href='?pindex=1'>首页~~~</a>");sb.Append("<a href='Product.aspx?index="+(pageindex-1)+"'>上一页</a>");}if (pageindex == PageCount){sb.Append("~~~下一页 末页");}else{sb.Append("<a href='Product.aspx?pindex=" + (pageindex + 1) + "'>~~~下一页~~~</a>");sb.Append("<a href='?pindex="+PageCount+"'>末页</a>");}Pager = sb.ToString();}
View Code

 

转载于:https://www.cnblogs.com/ZkbFighting/p/8145352.html

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/252592.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

NFS服务端的安装

执行以下四步操作即可完成在虚拟机上安装完成NFS的服务端&#xff1a;第一步&#xff1a;在虚拟机上安装nfs服务&#xff1a; sudo apt install nfs-kernel-server 第二步&#xff1a;修改文件 sudo vi /etc/exports 在文件末尾增加 /home/zzf/hisi-sdk 192.16…

【C++STL/红黑树】POJ 3481 DoubleQueue

POJ 3481 Double Queue 描述&#xff1a; 新成立的BIG-Bank在不切雷斯特开了一间新办公室,使用了由IBM罗马尼亚的现代计算机办公环境,运用了现代信息技术.一般来说,银行的每个顾客都有一个识别码K,并且每一个来银行的顾客都会被给予一个优先级P.银行主管的一个大胆想法震惊了公…

基础表单笔记

表单数据要向服务端提交的话 每个表单都要指定一些属性就是name""和value"" value就是用户写什么就是什么 来提交name就是对这个表单进行一个标识 <from> 输入用户名<input type"text" name"user" value""/>这…

PCIE总线-PCI、PCIE关系及信号定义

PCI(Peripheral Component Interconnect)总线规范在上世纪九十年代由Intel提出。在处理器体系结构中&#xff0c;PCI总线属于局部总线(Local Bus)。局部总线作为系统总线的延伸&#xff0c;主要功能是为了连接外部设备。 处理器主频的不断提升&#xff0c;要求速度更快&#x…

SQL Server:SQL Like 通配符特殊用法:Escape

%&#xff1a;匹配零个及多个任意字符&#xff1b; _&#xff1a;与任意单字符匹配&#xff1b; []&#xff1a;匹配一个范围&#xff1b; [^]&#xff1a;排除一个范围 &#xff1b;-&#xff1a;连字符 Symbol Meaning like 5[%] 5% like [_]n _n like [a-cdf] a, b, c, d, o…

案例篇-HBase RowKey 设计指南

1.为什么 Rowkey 这么重要 1.1 RowKey 到底是什么 我们常说看一张 HBase 表设计的好不好&#xff0c;就看它的 RowKey 设计的好不好。可见 RowKey 在 HBase 中的地位。那么 RowKey 到底是什么?RowKey 的特点 如下: 类似于 MySQL、Oracle 中的主键&#xff0c;用于标示唯一的行…

PCIe简介及引脚定义

随着现代处理器技术的发展&#xff0c;在互连领域中&#xff0c;使用高速差分总线替代并行总线是大势所趋。与单端并行信号相比&#xff0c;高速差分信号可以使用更高的时钟频率&#xff0c;从而使用更少的信号线&#xff0c;完成之前需要许多单端并行数据信号才能达到的总线带…

IDEA下搜狗输入法输入中文时卡着不动的参考解决方法

【问题描述】 在IntelliJ IDEA工具的java编辑窗口&#xff0c;给代码增加注释时发现&#xff0c;输入中文时&#xff0c;搜狗输入法界面不动&#xff0c;只显示第一个字母。如图&#xff1a; 我想输入“根据”两个字&#xff0c;但搜狗输入法界面一直卡着不刷新&#xff0c;导…

6U VPX板卡资料:6U VPX 高性能计算存储板卡

6U VPX板卡资料&#xff1a;6U VPX 高性能计算存储板卡_hexiaoyan827的博客-CSDN博客_vpx板卡

Android: Custom View和include标签的区别

Custom View&#xff0c; 使用的时候是这样的&#xff1a; <com.example.home.alltest.view.MyCustomViewandroid:id"id/customView"android:layout_width"match_parent"android:layout_height"wrap_content"></com.example.home.allte…

七 web爬虫讲解2—urllib库爬虫—状态吗—异常处理—浏览器伪装技术、设置用户代理...

如果爬虫没有异常处理&#xff0c;那么爬行中一旦出现错误&#xff0c;程序将崩溃停止工作&#xff0c;有异常处理即使出现错误也能继续执行下去 1.常见状态吗 301&#xff1a;重定向到新的URL&#xff0c;永久性302&#xff1a;重定向到临时URL&#xff0c;非永久性304&#x…

DVI和HDMI中的TMDS接口协议

TMDS&#xff08;Transition Minimized Differential signal&#xff09;&#xff0c;即过渡调制差分信号&#xff0c;也被称为最小化传输差分信号&#xff0c;是指通过异或及异或非等逻辑算法将原始信号数据转换成10位&#xff0c;前8为数据由原始信号经运算后获得&#xff0c…

君子眼中皆好人

从前有个国王&#xff0c;在晚年时思量 着&#xff1a;“我有两个儿子&#xff0c;我应该把王位传给哪个儿子来统治这个国家呢&#xff1f;”国王决定考验一下他的两位王子&#xff0c;哪位最是忠义仁厚&#xff0c;爱护老百姓的明君。国王叫来长子&#xff0c; 对他说&#xf…

GS使用HTTPS登录的设置过程

1. Windows 增加角色服务 服务器配置管理器&#xff0c; 添加角色服务 增加角色功能里面有&#xff1a; 证书颁发机构 证书颁发机构 web注册 2. AD CS配置 主要是next操作 独立ca 根证书 等 3. inetmgr申请证书 在机器名的一层及上面申请证书 保存证书信息 用来使用CA机构进行签…

TMDS的信号通道

1 TMDS的信号通道&#xff1a; 1个HDMI包括3个TMDS数据通道和1个TMDS时钟通道。 . 每一个TMDS时钟周期内&#xff0c;TMDS数据通道上会发送一个10位的字符信息&#xff1b; . 每个TMDS时钟周期内&#xff0c;编码器将2位的控制数据、4位的报数据或者8位的视频数据采取不同 …

[luoguP2774] 方格取数问题(最大点权独立集)

传送门 引入两个概念&#xff1a; 最小点权覆盖集&#xff1a;满足每一条边的两个端点至少选一个的最小权点集。 最大点权独立集&#xff1a;满足每一条边的两个端点最多选一个的最大权点集。 现在对网格染色&#xff0c;使得相邻两点颜色不同&#xff0c;之后把两个颜色的点分…

docker入门之容器网络

docker入门之容器网络首发&#xff1a;arppinging.com一、网络命名空间1&#xff09;IP命令2&#xff09;实例二、网络模型三、容器中常见的网络操作1&#xff09;指定网络模式2&#xff09;指定容器的dns地址和hosts解析四、网桥配置一、网络命名空间1&#xff09;IP命令查看i…

光谱分布、光谱辐射通量密度与不同时间段分布光谱(图示)

1、光谱分布图 2 太阳辐射能量图 3、不同时间段的太阳分布光谱图 4、不同波长的光的能量分布主要区域 5、不同波段的使用场景

$.ajax()方法详解

相关链接&#xff1a;http://blog.csdn.net/denghejing/article/details/41087581转载于:https://www.cnblogs.com/Steven5007/p/8191275.html

【从零开始】Python字符串的操作方法

1. 字符串长度 #strlen(str)       # 字符串长度函数名str apples    # 把字符串 "apples" 赋值给变量 strprint (len(str))      # 打印字符串的长度 2. 查找字符 #strchr(str1,str2)      # 查找字符函数名str1 apples      …