jQuery+存储过程实现无刷新分页(九)

网友投稿 805 2022-08-31

jQuery+存储过程实现无刷新分页(九)

jQuery+存储过程实现无刷新分页(九)

涉及到得知识点:

1.分页存储过程

2.分页原理

3.jQuery DOM操作

4.jQuery Ajax存取数据

效果图:

思路:数据库---DAL----BLL----UI

具体代码:

set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgoCREATE PROCEDURE [dbo].[GetDataByPager]( @startIndex INT,--代表起始条数(从0开始) @tableName VARCHAR(50),--代表分页的表名称 @pageSize INT=5,--代表每页的条数 @condition VARCHAR(1000)='1=1',--代表条件 @key VARCHAR(20)='id', --代表主键 @orderType VARCHAR(20)='desc' --代表排序方式)ASBEGIN DECLARE @SQL VARCHAR(1000) SET @SQL='select TOP ' +CONVERT(VARCHAR(20),@pagesize)+' * FROM '+@tableName +' WHERE '+ @condition+' and '+@key+' NOT IN(SELECT TOP ' +CONVERT(VARCHAR(20),@startIndex)+' '+@key+' FROM '+@tableName+' where '+@condition+' order by '+@key+' '+@orderType+') order by '+@key+' '+@orderType EXEC(@SQL)END

set ANSI_NULLS ONset QUOTED_IDENTIFIER ONgo--得到要分页的表的总记录数CREATE PROCEDURE [dbo].[GetDataByPager_Count]( @tableName VARCHAR(200), @condition VARCHAR(1000)='1=1')ASBEGIN DECLARE @strsql VARCHAR(2000) SET @strsql = 'select count(*) from '+@tableName+' where '+@condition EXEC(@strsql)END

DAL层:

public static partial class AuthorService { ///

/// 分页取数据 /// /// 起始记录数(从1开始) /// 每页的条数 /// 查询条件 /// public static IList GetAuthorByPager(int start, int limit, string condition) { //string strsql = string.Format("Exec GetDataByPager2 {0},'{1}',{2},'{3}'", start, limit, condition); string strsql = string.Format("Exec GetDataByPager {0},'{1}',{2},'{3}'", start - 1, "Author", limit, condition); return GetAuthorsBySql(strsql); } /// /// 条件查询结果集数目 /// /// 条件 /// public static int GetAuthorByPager_Count(string condition) { //string strsql = string.Format("GetDataByPager_Count '{0}'", condition); string strsql = string.Format("GetDataByPager_Count '{0}','{1}' ", "Author", condition); return DBHelper.GetScalar(strsql); } }

BLL层代码:

public static partial class AuthorManager { ///

/// 分页取数据 /// /// 起始记录数(从1开始) /// 每页的条数 /// 查询条件 /// public static IList GetAuthorByPager(int start, int limit, string condition) { return DAL.AuthorService.GetAuthorByPager(start, limit, condition); } /// /// 条件查询结果集数目 /// /// 条件 /// public static int GetAuthorByPager_Count(string condition) { return DAL.AuthorService.GetAuthorByPager_Count(condition); } }

引用了两个常用的js 代码:

String.format = function() { if (arguments.length == 0) return null; var str = arguments[0]; for (var i = 1; i < arguments.length; i++) { var re = new RegExp('\\{' + (i - 1) + '\\}', 'gm'); str = str.replace(re, arguments[i]); } return str;}

function StringBuffer(){ this._strings_=new Array();}StringBuffer.prototype.append = function(str){ this._strings_.push(str);}StringBuffer.prototype.toString=function(){ return this._strings_.join("");}

UI层得到数据:

public partial class HandleAuthorList : System.Web.UI.Page{ protected void Page_Load(object sender, EventArgs e) { if (Request["startIndex"] != null && Request["limit"] != null) { int startIndex = int.Parse(Request["startIndex"].ToString()); int limit = int.Parse(Request["limit"].ToString()); IList authors = BLL.AuthorManager.GetAuthorByPager(startIndex, limit, "1=1"); string json = JsonHelper.Serialize(authors); Response.Write(json); } else if (Request["type"] != null) { int rowCount= BLL.AuthorManager.GetAuthorByPager_Count("1=1"); Response.Write(rowCount); } }}

Ajax异步刷新:

<%@ Page Language="C#" AutoEventWireup="true" CodeFile="AuthorMgr.aspx.cs" Inherits="AuthorMgr" %>

版权声明:本文内容由网络用户投稿,版权归原作者所有,本站不拥有其著作权,亦不承担相应法律责任。如果您发现本站中有涉嫌抄袭或描述失实的内容,请联系我们jiasou666@gmail.com 处理,核实后本网站将在24小时内删除侵权内容。

上一篇:为什么Go语言把类型声明放在后面(go语言类型后置)
下一篇:Go基础系列:常量和变量(gom变量)
相关文章

 发表评论

暂时没有评论,来抢沙发吧~