- 浏览: 614071 次
- 性别:
- 来自: 卡哇伊
文章分类
- 全部博客 (299)
- C# (25)
- Java (1)
- WinForm (0)
- Asp.Net (86)
- Jsp (2)
- Php (1)
- Web Service (0)
- Desgin Patterns (19)
- Data Structure & Algorithms (1)
- SQLserver (41)
- Mysql (0)
- Oracle (2)
- Javascript (50)
- Ajax (10)
- Jquery (1)
- Flex (0)
- Regular Expression (5)
- DIV+CSS+XHTML+XML (18)
- Software Test (0)
- Linux (0)
- Utility (17)
- Net Digest (4)
- windows 2003 (10)
- Other (4)
- English (1)
- IT Term (1)
最新评论
-
w497480098h:
学习了 很好谢谢
SQL Server下无限多级别分类查询解决办法(简单查询树形结构数据库表) -
main_fun:
确实不错
iframe自适应高度 -
jveqi:
...
DBA -
mxcie:
其它版本没有确认,今天使用vs2003时,其.sln文件也需要 ...
彻底删除项目的VSS源代码管理信息 -
moneyprosper:
就只有IE支持,火狐和谷歌都不支持此种方法。正在寻找中。。。
从父页面读取和操作iframe中内容方法
利用ASP.NET开发Web数据库的查询功能模块时,为了减少网络流量,提高页面的访问速度,一般不会将所有的查询结果完全在一页中显示出来,而是将其按照一定规则分成多页进行显示,每页显示一定数目记录。应用数据记录分页技术,可以提高数据的查询性能及页面的显示速度,减轻数据库服务器的负担。
1 分页显示方法概述
对Web数据库查询结果进行分页显示主要有两种实现方式,分别是浏览器端分页和服务器端分页。浏览器端分页是先将数据库中所有满足查询条件的记录一次性保存下来,然后通过设置每页要显示的记录数,再确定要显示记录的起点和终点来实现分页显示。服务器端分页是根据用户的请求,每次分别从满足查询条件的记录中将规定数目的记录数作读取并显示出来。
为此,我们采用服务器端分页的方式。在浏览器端进行分页时,为了减少网络的流量,我们采用SQL Server的存储过程进行分页。
2 主要技术
2.1 ADO.NET类
在Web应用系统中,ASP.NET使用ADO.NET将系统前端的Web浏览器和后台的数据库之间联系起来。ADO.NET是.NET Framework提供的一系列类,提供了对关系数据、XML和应用程序数据的访问。
3 分页显示技术的实现
在此,我们使用System.data.SqlClient(包含访问SQL Server数据库的类)对MS SQL Server2000进行操作,使用ASP.NET中的C#语言进行描述。以笔者开发的“在线考试系统”中的“查看学生留言信息模块”为例来说明该项技术的开发过程。
3.1连接数据库
要访问数据,必须首先连接数据库,在此我们利用System.data.SqlClient.SqlConnection类来连接SQL Server中Student的数据库。用到主要属性和方法如下:
属性/方法 |
说明 |
ConnectionString |
获取或设置用于打开SQL Server数据库的字符串 |
Open |
使用ConnectionString所指定的属性设置打开数据库连接 |
Close |
关闭与数据库的连接 |
连接字符串如下:
SqlConnection SCN = new SqlConnection("server=;database=BSNetExam;uid=sa;pwd=");
3.2 存储过程的建立
CREATE PROCEDURE PageCut @PageSize int=10 , -- 页面大小 @PageIndex int=1 --当前页数 AS declare @strSQL varchar(500) if @PageIndex=1 set @strSQL='select top'+str(@PageSize)+'* from tdbLevMess order by rqsj' else set @strSQL='select top'+str(@PageSize)+' * from tdbLevMess where rqsj not in (select top '+str((@PageIndex-1)*@PageSize)+' rqsj from tdbpres) order by rqsj' exec(@strSQL) GO
3.3操作数据库
查询数据操作可以通过多种方式来实现,常用的对象包括SqlCommand对象(表示一个SQL查询或者一个存储过程)和SqlDataAdpater对象(把一个SqlCommand提交给SQL Server数据库)。在此,我们使用SqlCommand对象来操作数据库。
SqlCommand类位于System.Data.SqlClient空间中,表示要对SQL Server数据库执行的一个Transact-SQL语句或存储过程。本例中用到的属性和方法如下:
属性/方法
说明
CommandText
获取或设置要对数据源执行的 Transact-SQL 语句或存储过程。
CommandType
获取或设置一个值,该值指示如何解释 CommandText 属性。
Connection
获取或设置 SqlCommand 的此实例使用的 SqlConnection。
Parameters
获取 SqlParameterCollection。
ExecuteReader
将 CommandText 发送到 Connection 并生成一个 SqlDataReader。
SqlParameter类位于System.Data.SqlClient空间中,表示 SqlCommand 的参数,也可以是它到 DataSet 列的映射。本例中用到的Value属性(获取或设置该参数的值)。
其实现程序如下:
SqlCommand SCM=new SqlCommand(); //定义SqlCommand类 SqlDataReader SDR; //定义SqlDataReader类 private void GridView_Init(int PageSize,int PageIndex) { SCN.Open(); //打开数据库连接 SCM.Connection = SCN; SCM.CommandText = "pagecut"; //执行存储过程 SCM.CommandType = CommandType.StoredProcedure; SqlParameter[] pares ={ new SqlParameter("@PageSize",SqlDbType.Int), new SqlParameter("@PageIndex",SqlDbType.Int)}; pares[0].Value = PageSize; pares[1].Value = PageIndex; SCM.Parameters.Clear(); //清空参数 foreach (SqlParameter parameter in pares) { SCM.Parameters.Add(parameter); } SDR = SCM.ExecuteReader(); //执行存储过程 GridView1.DataSource = SDR; //定义GridView的数据源 GridView1.DataBind(); // GridView数据源绑定 SCN.Close(); //关闭连接 }
3.4 程序的实现
在Web窗体上,添加一个GridView控件(用于数据的显示),四个LinkButton(用作超级链接,分别为首页、上一页、下一页、末页),一个Label控件。将GridView控件的AllowPaging(是否在GridView中打开分页功能)属性设置为False。我们利用Session对象保存分页程序中的参数。具体程序如下:
protected void Page_Load(object sender, EventArgs e) {//页面初始化 if (!IsPostBack) //如果页面不是第一次加载 { int PageCount,PageIndex,PageSize; //定义页面总数、当前页面号、每页记录数 SCN.Open(); SCM.CommandText = "select count(*) from tdbLevMess "; SCM.Connection = SCN; int ReCount = Convert.ToInt32(SCM.ExecuteScalar().ToString());//数据集记录总数 SCN.Close(); Session.Add("PageSize", 20); //为共享变量每页记录数PageSize赋值 PageSize = Convert.ToInt16(Session["PageSize"]);//每页记录数为20 PageCount=ReCount % PageSize == 0? ReCount / PageSize: ReCount / PageSize + 1;//计算页面的总页数 Session.Add("PageCount", PageCount); //为共享变量总页数PageCount赋值 PageIndex = 1; Session.Add("PageIndex", PageIndex); //为共享变量总页数PageIndex赋值 GridView_Init (PageSize, PageIndex); //调用过程为GridView填充数据 LinkButton1.Enabled = false, LinkButton2.Enabled = false; LinkButton3.Enabled = true,LinkButton4.Enabled = true; Label1.Text = "第"+PageIndex.ToString() + "页/共" + PageCount.ToString() + "页"; } } protected void LinkButton2_Click(object sender, EventArgs e) {//上一页按钮 int PageIndex = Convert.ToInt16( Session["PageIndex"] )- 1; int PageCount = Convert.ToInt16( Session["PageCount"]); Session.Add("PageIndex", PageIndex); int PageSize = Convert.ToInt16(Session["PageSize"]); if (PageIndex <= 1) { LinkButton1.Enabled = false; LinkButton2.Enabled = false; } LinkButton3.Enabled = true; LinkButton4.Enabled = true; GridView_Init(PageSize, PageIndex); Label1.Text = "第" + PageIndex.ToString() + "页/共" + PageCount.ToString() + "页"; }
我们只给出了LinkButton2的代码(实现向上翻页),其它超级链接代码跟此相类似。
4 结束语
查询分页技术是Web应用系统开发中经常遇到的重要工作,选择一种高效的查询分页技术,不仅能大大提高响应速度,而且能提高整个系统性能,节约服务器宝贵资源。
发表评论
-
JS操作RadioButtonList
2009-12-16 23:25 3898function IsUpPic() { ... -
asp.net跳转页面的三种方法比较
2009-10-22 14:16 25421.Response.redir ... -
ASP.NET网站中的安全问题
2009-10-20 16:57 1194在网络经常看到网站被 ... -
新闻内容页分页的简单做法
2009-10-10 10:08 1225该例子只是提供了基本思路 很简单的做法,这个是假设数 ... -
Asp.net控件开发学习笔记(二)-控件开发基础
2009-10-03 16:49 1345接上篇…….. 看System.Web.UI.Ht ... -
Asp.net控件开发学习笔记-控件开发基础(一)
2009-10-03 16:33 1250服务器控件开发基础 当开发一个服务器控件时,首 ... -
Asp.net用户退出,清空Session,重定向登陆页面
2009-09-28 16:22 4178protected void Page_Load(object ... -
frameset中的aspx无法Postback
2009-09-28 16:07 1505<frameset cols="150,*&q ... -
.net页面定时刷新的几种简单方式
2009-09-28 11:20 59261: window.setTimeout("win ... -
动态添加TextBox
2009-09-21 16:30 1686方法1: 前台代码: <f ... -
浅谈ASP.NET管道优化
2009-09-20 21:43 1015ASP.NET管道优化 位于请求管道中的很多ASP.NET默 ... -
Asp.net 页面返回到上一页面
2009-09-20 21:20 915/// <summary> / ... -
PrecompiledApp.config文件和Global.asax 文件中的事件的关联
2009-09-19 10:24 2791在用Microsoft Visual Studio 2005开 ... -
gridview列 数字、货币和日期 显示格式
2009-09-11 17:05 1537在设置gridview等数据绑定控件的模版列时,总要 ... -
ASP.NET 打开新窗口几种方法
2009-09-09 21:44 3344ASP.NET打开新窗口方法一: Response ... -
response.addHeader("Content-Disposition","attachment; filename="+filename)中的中文乱码
2009-08-31 15:10 3250两种解决方法 1.如果web.config里utf-8 直接S ... -
技巧和诀窍:如何在VS 2005 SP1中使用VS的web服务器运行一个相对于根目录“/”的网站
2009-08-31 08:29 869大家常有一个疑问,是 ... -
Request.ServerVariables详细说明及代理
2009-08-14 10:46 2147ServerVariables是环境变量的集合。允许读取HTT ... -
DataList和Repeat无数据时提示暂无数据几种方法
2009-08-11 18:45 25751.放一个label DataTable table ... -
Asp.Net中清空所有textbox的几种方法
2009-08-08 08:53 5191用反射: FieldInfo[] info ...
相关推荐
asp.net,Datalist控件分页显示数据,绑定datatable 带有向前向后翻页
在ASP.NET中实现Web打印功能是一项常见的需求,它允许用户直接从网页上打印内容而无需先下载文件。本文将深入探讨如何在ASP.NET环境中构建这一功能,并基于描述中的"print.html"文件,推测这是一个用于演示Web打印...
在ASP.NET中,实现文章分页是Web应用中常见的需求,尤其对于内容丰富的网站,如博客、论坛等,分页可以有效地提高用户体验,避免一次性加载过多数据导致页面响应慢。以下将详细介绍如何在ASP.NET中实现文章分页,并...
在ASP.NET中,实现数据分页的方法有很多,包括使用SQL Server的ROW_NUMBER()函数、ADO.NET的DataView控件、Linq to SQL或Entity Framework的Skip和Take方法,以及使用各种第三方插件。其中,使用插件是一种便捷且...
在IT领域,jQuery、ASP.NET MVC以及分页样式是构建高效、用户友好的Web应用程序的重要组成部分。本资源“jquery +asp.net MVC+多种分页样式源码”提供了一个实用的解决方案,结合了这些技术,旨在优化数据加载和用户...
ASP.NET SQL 存储过程分页是数据库查询中一种常用的技术,它可以帮助我们高效地处理大量数据,提高网站性能,并优化用户体验。在Web应用程序中,尤其是数据量庞大的时候,一次性加载所有数据会消耗大量服务器资源,...
在这个“asp.net24种分页含源码”的资源包中,我们重点关注的是ASP.NET中的分页技术,这是一种在处理大量数据时不可或缺的功能,可以提高网页加载速度,提升用户体验。 分页是Web应用中常见的数据展示策略,特别是...
ASP.NET是一种广泛使用...总之,ASP.NET第三方分页控件如AspNetPager,为开发者提供了强大的工具,简化了分页实现过程,提高了开发效率。在处理大数据量展示时,合理利用这样的控件可以显著提升应用的性能和用户体验。
ASP.NET 是微软开发的一种用于构建动态网站、Web 应用程序和Web服务的框架。在处理长篇文章时,为了提供良好的用户体验,通常需要将长篇文章分成多个页面进行展示,这就是所谓的“分页”功能。本篇文章将深入探讨...
在这个特定的案例中,我们关注的是"asp.net无刷新分页",这是一种提高用户体验的技术,允许用户浏览大量数据时无需等待整个页面重新加载。 无刷新分页在网页应用中是非常常见的功能,特别是在处理大数据集时,如...
在分页场景下,Asp.net提供了一些内置的分页控件,如GridView、ListView等,这些控件可以通过简单的配置实现分页功能。 **二、jQuery简介** jQuery是一个轻量级的JavaScript库,它简化了HTML文档遍历、事件处理、...
在ASP.NET开发中,文章分页是一个非常常见的需求,尤其在处理大量数据展示时,如新闻、博客或者论坛。分页能有效地提高用户体验,避免一次性加载过多内容导致页面响应变慢。本文将深入探讨如何在ASP.NET中实现文章的...
这里以最常见的ASP.NET Web Forms或MVC为例,结合SQL Server数据库进行讲解。 1. ADO.NET数据分页: 在ADO.NET中,可以使用`SqlDataReader`或`DataSet`来实现数据分页。例如,通过设置SQL查询的`TOP`子句和`OFFSET...
总的来说,ASP.NET MVC3的分页和搜索功能使得开发者能创建高效且用户友好的Web应用,提供大量数据的浏览和查找能力。通过熟练掌握这些技术,你可以创建出类似博客园那样功能丰富、用户体验优秀的网站。
在ASP.NET开发中,分页是提升Web应用性能和用户体验的关键技术之一,特别是在处理大量数据时。本知识点主要探讨如何实现基于Table的分页,并利用`SET Count`的存储过程来支持排序功能。 首先,我们需要理解分页的...
其中,分页查询是 ASP.NET MVC5 中的一个重要功能,能够帮助开发者快速实现数据的分页查询和展示。 在 ASP.NET MVC5 中,实现分页查询需要三个变量:数据总量、每页显示的数据条数、当前页码。根据数据总量和每页...
ASP.NET,作为.NET框架的一部分,提供了多种实现分页的方法。本文将深入探讨.NET分页和ASP.NET分页的相关知识点,以及如何在实际项目中应用。 首先,我们来理解什么是分页。分页是将大量数据分成多个小部分,每次只...
在ASP.NET中,静态页面分页显示是一种常见的需求,它能帮助用户更高效地浏览大量数据,提升用户体验。实现这一功能的关键在于理解如何利用服务器端技术动态生成看似静态的HTML页面,同时结合分页控件和数据库查询...
总结来说,ASP.NET MVC中的分页实现涉及到数据库查询、分页逻辑计算、视图模型的构建以及视图的呈现。理解并掌握这一过程对于开发高效、用户体验良好的Web应用至关重要。在实际项目中,选择合适的方法或库,结合项目...
在Asp.net框架下,结合Ajax技术实现分页,可以让页面在不刷新整个页面的情况下更新数据,提升交互性。本教程将深入探讨如何在Asp.net中实现Ajax分页。 首先,我们需要理解Ajax(异步JavaScript和XML)的核心概念。...