实现环境:SQL Server 2005 Express + VWD 2008 Express Edition
说明:关系数据库及表的详细情况请参看我的上一篇文章《实例讲解用.NET技术将Excel表格中的数据导入到特定的数据库中》。
第一步:存储过程GetRecordFromPage
代码:
说明:该存储教程中用了两个输入参数@PageIndex和@PageSize,用以表示页码和每页显示的数据记录条数,注意PageIndex是实际显示的页码数值减1;两个输出参数@RecordCount和@PageCount,用以表示表中总的记录数和可以分的页码数量。
原理:将两个有关联的表Category和UserInfo中的数据选择出来,并根据行数添加一字段RowNumber放到一临时表temp_table中,之后再从该临时表中查找指定页码的记录。
第二步:在DAL层添加方法:
(1)RecordPage方法,功能:传入页码和每页要显示的记录数,返回所需要的记录
代码:
(2)RecordPageCount方法,功能:返回总的页数。
代码:
第三步:在网页中调用:
当然,首先要在BLL层写相应的RecordPage()和RecordPageCount()方法代码。
(1)前台:
(2)后台:
说明:关系数据库及表的详细情况请参看我的上一篇文章《实例讲解用.NET技术将Excel表格中的数据导入到特定的数据库中》。
第一步:存储过程GetRecordFromPage
代码:
ALTER PROCEDURE GetRecordFromPage @PageIndex int, @PageSize int, @RecordCount int out, @PageCount int out AS BEGIN select @RecordCount=Count(*) from UserInfo select @PageCount=ceiling(@RecordCount/@PageSize) select * from (select u.Id,u.UserName,u.UserAddress,u.UserTelephone,c.Model,u.InstallationDate,u.Amount,u.AccessoriesModel,u.InstallationName,u.Notes,Row_Number() over (order by u.Id) as RowNumber from UserInfo u inner join Category c on u.Caid=c.Id) as temp_table where temp_table.RowNumber>(@PageIndex*@PageSize) and temp_table.RowNumber<=((@PageIndex+1)*@PageSize) END
说明:该存储教程中用了两个输入参数@PageIndex和@PageSize,用以表示页码和每页显示的数据记录条数,注意PageIndex是实际显示的页码数值减1;两个输出参数@RecordCount和@PageCount,用以表示表中总的记录数和可以分的页码数量。
原理:将两个有关联的表Category和UserInfo中的数据选择出来,并根据行数添加一字段RowNumber放到一临时表temp_table中,之后再从该临时表中查找指定页码的记录。
第二步:在DAL层添加方法:
(1)RecordPage方法,功能:传入页码和每页要显示的记录数,返回所需要的记录
代码:
public DataTable RecordPage(int pageIndex, int pageSize) { DataTable dt = new DataTable(); SqlDataReader sdr = null; string connStr=@"server=PC2009080519VDZ\SQLEXPRESS;database=yuajiasys;uid=sa;pwd=123456"; SqlConnection conn=new SqlConnection(connStr); conn.Open(); SqlCommand cmd=new SqlCommand("GetRecordFromPage",conn); cmd.CommandType=CommandType.StoredProcedure; cmd.Parameters.Add("@PageIndex",SqlDbType.Int); cmd.Parameters["@PageIndex"].Value = pageIndex; cmd.Parameters.Add("@PageSize",SqlDbType.Int); cmd.Parameters["@PageSize"].Value = pageSize; cmd.Parameters.Add("@RecordCount",SqlDbType.Int); cmd.Parameters["@RecordCount"].Direction = ParameterDirection.Output; cmd.Parameters.Add("@PageCount", SqlDbType.Int); cmd.Parameters["@PageCount"].Direction = ParameterDirection.Output; sdr = cmd.ExecuteReader(); dt.Load(sdr); sdr.Close(); conn.Close(); return dt; }
(2)RecordPageCount方法,功能:返回总的页数。
代码:
public int RecordPageCount(int pageIndex, int pageSize) { int recordCount = 0; int pageCount = 0; DataTable dt = new DataTable(); SqlDataReader sdr = null; string connStr = @"server=PC2009080519VDZ\SQLEXPRESS;database=yuajiasys;uid=sa;pwd=123456"; SqlConnection conn = new SqlConnection(connStr); conn.Open(); SqlCommand cmd = new SqlCommand("GetRecordFromPage", conn); cmd.CommandType = CommandType.StoredProcedure; cmd.Parameters.Add("@PageIndex", SqlDbType.Int); cmd.Parameters["@PageIndex"].Value = pageIndex; cmd.Parameters.Add("@PageSize", SqlDbType.Int); cmd.Parameters["@PageSize"].Value = pageSize; cmd.Parameters.Add("@RecordCount", SqlDbType.Int); cmd.Parameters["@RecordCount"].Direction = ParameterDirection.Output; cmd.Parameters.Add("@PageCount", SqlDbType.Int); cmd.Parameters["@PageCount"].Direction = ParameterDirection.Output; sdr = cmd.ExecuteReader(); dt.Load(sdr); sdr.Close(); conn.Close(); recordCount = (int)cmd.Parameters["@RecordCount"].Value; pageCount = (int)cmd.Parameters["@PageCount"].Value; return pageCount; }
第三步:在网页中调用:
当然,首先要在BLL层写相应的RecordPage()和RecordPageCount()方法代码。
(1)前台:
...... <table> <tr><th>ID号</th><th>姓名</th><th>地址</th><th>电话</th><th>机型</th><th>安装日期</th><th>RowNumber</th></tr> <asp:Repeater ID="repuserinfo" runat="server"> <ItemTemplate> <tr> <td><%# Eval("Id") %></td> <td><%# Eval("UserName") %></td> <td><%# Eval("UserAddress") %></td> <td><%# Eval("UserTelephone") %></td> <td><%# Eval("Model") %></td> <td><%# Eval("InstallationDate") %></td> <td><%# Eval("RowNumber") %></td> </tr> </ItemTemplate> </asp:Repeater> </table> <p id="pginfo"> 第<asp:Label ID="lbpgIndex" runat="server" Text=""></asp:Label>页 共<asp:Label ID="lbpgCount" runat="server" Text=""></asp:Label>页 转到第<asp:TextBox ID="txttopgIndex" CssClass="pginput" runat="server"></asp:TextBox>页 <asp:RequiredFieldValidator ID="RequiredFieldValidator1" ControlToValidate="txttopgIndex" runat="server" ErrorMessage="请输入页码" Text="*" ValidationGroup="pginfo"></asp:RequiredFieldValidator> <asp:Button ID="btntopgIndex" runat="server" Text="Go" onclick="btntopgIndex_Click" ValidationGroup="pginfo" /> <asp:RegularExpressionValidator ID="RegularExpressionValidator1" ControlToValidate="txttopgIndex" ValidationExpression="\d{1}[0-9]|\d{1}" runat="server" ErrorMessage="请输入数值" ValidationGroup="pginfo"></asp:RegularExpressionValidator> <asp:ValidationSummary ID="ValidationSummary1" runat="server" ShowMessageBox="true" ShowSummary="false" ValidationGroup="pginfo" /> </p> ......
(2)后台:
...... private int pgSize = 100; protected void Page_Load(object sender, EventArgs e) { int pgCount = new UserInfoManager().RecordPageCount(1, pgSize); DataTable dt = new DataTable(); dt = new UserInfoManager().RecordPage(pgCount, pgSize); repuserinfo.DataSource = dt; repuserinfo.DataBind(); lbpgIndex.Text = Convert.ToString(pgCount+1); lbpgCount.Text = Convert.ToString(pgCount+1); } protected void btntopgIndex_Click(object sender, EventArgs e) { int pgIndex = int.Parse(txttopgIndex.Text); int pgCount = new UserInfoManager().RecordPageCount(1, pgSize); DataTable dt = new DataTable(); pgIndex -= 1; dt = new UserInfoManager().RecordPage(pgIndex, pgSize); repuserinfo.DataSource = dt; repuserinfo.DataBind(); lbpgIndex.Text = Convert.ToString(pgIndex+1); lbpgCount.Text = Convert.ToString(pgCount+1); txttopgIndex.Text = ""; } ......
发表评论
-
ASP.net把datatable与list转成json输出
2014-12-10 12:02 824源代码: //DataTable转成Json ... -
开发问题集锦
2014-09-18 16:45 7131.SWFUpload问题 "触发uploadErr ... -
repeater嵌套使用
2014-09-16 18:38 775前台: <div id="m ... -
ASP.NET环境下使用KindEditor
2013-11-26 16:46 2907最新版的KindEditor,按照在线文档http://www ... -
ASP.NET+jQuery轮播效果
2013-08-21 08:03 2866<style type="text/css&q ... -
ASP.NET与Sql Server数据库的空数据的交互
2013-08-02 22:55 1000数据库中的字段:(1) ArticleId int型 外键 可 ... -
设置网页的Title、keywords和description
2013-03-20 15:35 876protected void Page_Load(obje ... -
再谈<<在ASP.NET中重写URL>>
2013-02-20 09:17 896将之前的<<在ASP.NET中重写URL>& ... -
VS2010母版版引入js和css文件
2012-10-31 17:15 876动态引入js文件和css样式表文件 1 引入js文件 Ht ... -
.NET网站中利用jQuery Ajax获取后台数据
2011-12-19 11:59 3332一般处理程序 using System.Web.Script. ... -
解决:Sys.WebForms.PageRequestManagerServerErrorException(status code 500 OR 12031)
2011-12-09 10:21 1279解决:Sys.WebForms.PageRequestMana ... -
在ASP.NET中重写URL
2011-12-08 18:02 759目标:将网页地址伪静态 实现:在Global.asax中改写: ... -
ashx文件使用Session(转)
2011-12-02 11:25 858查阅MSDN得到ashx文件要使用Session,必须实现Se ... -
作品展示
2011-11-05 16:27 828刚开发完成 看一下效果 [img][/img] ... -
ASP.NET上传大文件
2011-10-27 17:20 4028上网下一个neatupload 1.2.32的压缩包:(附压缩 ... -
asp .NET弹出窗口汇总(转)
2011-08-16 09:39 621注: //关闭,父窗口弹出对话框,子窗口直接关闭 this ... -
精通ASP.NET中弹出窗口技术(转)
2011-08-16 09:36 923摘要:本文讨论如 ... -
asp.net中的验证控件的使用
2010-04-07 16:35 1013前台: <h4>验证控件使用测试< ... -
.net利用AJAX实现局部刷新
2010-04-07 16:30 3347前台: <div> ... -
一个SQL Server2000和2005都能用的分页方法
2010-04-07 16:25 1032(1)存储过程(SQL2000和2005下都可用): ...
相关推荐
ASP.NET Repeater分页,查询分页 ASP.NET Repeater分页,查询分页 ASP.NET Repeater分页,查询分页 ASP.NET Repeater分页,查询分页 ASP.NET Repeater分页,查询分页
ASP.NET AJAX分页技术是Web开发中的一个重要概念,它允许用户在不刷新整个页面的情况下实现数据的分块加载,提供流畅的用户体验。本教程将深入探讨ASP.NET AJAX分页的相关知识点,以及如何编写分页代码。 1. **什么...
本文将深入探讨如何在ASP.NET中实现自定义分页,以及与SQL数据库的集成。 首先,我们要理解ASP.NET中的分页原理。分页的基本思想是通过在服务器端对数据进行切割,每次只取一部分数据返回给客户端,然后在客户端...
本教程将深入探讨如何在ASP.NET MVC中实现完整的分页功能,并提供源码下载供参考。 首先,我们需要理解分页的基本概念。分页是将大数量的数据分成多个小部分(页)来显示,用户可以逐页浏览,而不是一次性显示所有...
ASP.NET 2.0 分页控件是一种网页开发技术,用于在大量数据中实现高效的页面导航,以提高用户体验。在ASP.NET框架下,分页功能是通过数据绑定控件(如GridView, DataList或Repeater)内置的分页功能或者自定义控件来...
首先,让我们深入理解ASP.NET中的分页实现。通常,我们可以使用两种方法:服务器端分页和数据库分页。服务器端分页是在服务器上加载所有数据,然后根据当前页码筛选显示的部分;而数据库分页则是在数据库层面进行...
源码包中的文件可能包含了以上提到的一些或全部分页方法的实现,这为学习和实践ASP.NET分页提供了丰富的素材。通过分析这些源代码,开发者可以深入理解各种分页技术的工作原理,以及如何在实际项目中应用它们。 在...
本文将深入探讨如何在ASP.NET MVC中实现分页功能,并重点关注"MvcPaging"这个标签扩展库。 首先,让我们理解什么是分页。分页是将大量数据分割成多个小部分(页)的过程,以便用户可以逐页浏览,而不会被大量信息...
本教程将深入探讨如何在Asp.net中实现Ajax分页。 首先,我们需要理解Ajax(异步JavaScript和XML)的核心概念。Ajax允许Web应用程序在不重新加载整个页面的情况下与服务器交换数据并更新部分网页内容,实现了页面的...
在ASP.NET中实现异步分页通常涉及以下几个关键步骤: 1. **数据库优化**:首先,为了高效地处理分页,数据库层面需要进行优化。这可能包括创建合适的索引、调整查询语句,使其只获取特定页的数据,以及利用存储过程...
标签`ASP.NET MVC分页`表明这个主题涵盖了如何在ASP.NET MVC项目中实现分页。在实际应用中,我们可能还需要考虑其他因素,如性能优化、搜索过滤后的分页、自定义样式和交互等。总的来说,掌握ASP.NET MVC分页技巧...
在ASP.NET中,可以使用多种方式实现分页,如ASP.NET Web Forms的GridView控件、ASP.NET MVC的PagedList库等。 在SQL Server中,`SET COUNT`是用于设置返回行数的语句,常与分页结合使用。当启用`SET COUNT ON`时,...
### C# ASP.NET 自定义分页控件解析 ...上述代码片段展示了如何在ASP.NET应用程序中实现一个简单的分页功能,并提供了详细的配置选项。开发者可以根据实际需求调整这些选项,从而更好地满足用户体验的需求。
本教程将详细介绍如何使用AspNetPager控件来实现ASP.NET分页功能。 AspNetPager控件是由WUCtrl公司开发的一款高效、易用的分页控件,它可以轻松地集成到ASP.NET应用中,提供丰富的自定义选项和强大的性能。下面我们...
ASP.NET AJAX分页控件是一种在Web应用中实现动态、交互式用户体验的关键技术。它结合了ASP.NET的强大功能和AJAX(Asynchronous JavaScript and XML)的异步特性,以提高网页加载速度,优化用户界面,并减少不必要的...
在ASP.NET开发中,分页是...`Pagination.cs`和`Default.aspx.cs`分别代表了分页类的实现和使用场景,通过这两个文件,我们可以构建出一个完整的分页解决方案,使得在ASP.NET应用程序中实现数据分页变得更加简单和高效。
本文将深入探讨如何在ASP.NET中实现文章的分页功能,包括静态分页的原理和实践。 一、理解分页基础 1. 分页概念:分页是将大量数据分为多个部分(页)进行显示,用户可以逐页浏览,而不是一次性显示所有内容。在...
本文将深入探讨如何在ASP.NET环境中实现分页功能。 首先,我们需要理解分页的基本概念。分页涉及到两个主要部分:前端展示和后端数据处理。前端负责显示页面和导航链接,而后端则负责从数据库中获取指定页的数据。 ...
总之,AspNetPager 7.2作为一款强大的ASP.NET分页控件,通过其丰富的功能和易用性,极大地简化了开发过程,提升了Web应用的性能和用户体验。对于处理大数据量的ASP.NET项目来说,它是不可或缺的工具之一。