2023年6月21日发(作者:)

ajax⾼效分页查询,基于Jquery+Ajax+Json⾼效分页实现代码代码如下using System;using ;using ent;using ;using c;using ization;public class GetData : IHttpHandler {public void ProcessRequest (HttpContext context) {tType = "text/plain";var pageIndex = t["PageIndex"];string connectionString = @"Data Source=KUSESQLEXPRESS;Initial Catalog=bookshop;Integrated Security=True";//判断当前索引存不存在,如果不存在则获取记录的总数。if (OrEmpty(pageIndex)){//获取查询记录总数的sql语句string sql = "select count(-1) from books";int count = 0;se(eScalar(connectionString, , sql, null).ToString(), out count);(count);();}//当根据索引获取数据else{int currentPageIndex = 1;se(pageIndex, out currentPageIndex);SqlParameter[] parms = new SqlParameter[] {new SqlParameter("@FEILDS",ar,1000),new SqlParameter("@PAGE_INDEX",,10),new SqlParameter("@PAGE_SIZE",,10),new SqlParameter("@ORDERTYPE",,2),new SqlParameter("@ANDWHERE",r,1000),new SqlParameter("@ORDERFEILD",r,100)};parms[0].Value = "*";//获取所有的字段parms[1].Value = pageIndex;//当前页⾯索引parms[2].Value = 10;//页⾯⼤⼩parms[3].Value = 0;//升序排列parms[4].Value = "";//条件语句parms[5].Value = "ID";//排序字段Listlist = new List();using (SqlDataReader sdr = eReader(connectionString, Procedure, "PAGINATION",parms)){while (()){(new Book { Title = sdr[2].ToString(), Auhor = sdr[2].ToString(), PublishDate = sdr[4].ToString(), ISBN =sdr[5].ToString() });}}(new JavaScriptSerializer().Serialize(list).ToString());//转为Json格式}}public bool IsReusable {get {return false;}}}public class Book{public string Title { get; set; }public string Auhor { get; set; }public string PublishDate { get; set; }public string ISBN { get; set; }}显⽰页⾯代码如下/*显⽰数据内容*//*显⽰分页条*/js代码代码如下$(function () {$.post("", null, function (data) {var total = data;PageClick(1, total, 3);});PageClick = function (pageIndex, total, spanInterval) {$.ajax({url: "",data: { "PageIndex": pageIndex },type: "post",dataType: "json",success: function (data) {//索引从1开始//将当前页索引转为int类型var intPageIndex = parseInt(pageIndex);//获取显⽰数据的表格var table = $("#content");//清楚表格中内容$("#content tr").remove();//向表格中添加内容for (var i = 0; i < ; i++) {($("" +data[i].Title+ "" +data[i].Auhor+ "" +data[i].PublishDate+ "" +data[i].ISBN+ ""));} //for//创建分页//将总记录数结果 得到 总页码数var pageS = totalif (pageS % 10 == 0) pageS = pageS / 10;else pageS = parseInt(total / 10) + 1;var $pager = $("#pager");//清楚分页div中的内容$("#pager span").remove();$("#pager a").remove();//添加第⼀页if (intPageIndex == 1)$("第⼀页");else {var first = $("第⼀页").click(function () {PageClick($(this).attr('first'), total, spanInterval);return false;});$(first);}//添加上⼀页if (intPageIndex == 1)$("上⼀页");else {var pre = $("上⼀页").click(function () {PageClick($(this).attr('pre'), total, spanInterval);return false;});$(pre);}//设置分页的格式 这⾥可以根据需求完成⾃⼰想要的结果var interval = parseInt(spanInterval); //设置间隔var start = (1, intPageIndex - interval); //设置起始页var end = (intPageIndex + interval, pageS)//设置末页if (intPageIndex < interval + 1) {end = (2 * interval + 1) > pageS ? pageS : (2 * interval + 1);}if ((intPageIndex + interval) > pageS) {start = (pageS - 2 * interval) < 1 ? 1 : (pageS - 2 * interval);}//⽣成页码for (var j = start; j < end + 1; j++) {if (j == intPageIndex) {var spanSelectd = $("" + j + "");$(spanSelectd);} //ifelse {var a = $("" + j + "").click(function () {PageClick($(this).text(), total, spanInterval);return false;});$(a);} //else} //for//上⼀页if (intPageIndex == total) {$("下⼀页");}else {var next = $("下⼀页").click(function () {PageClick($(this).attr("next"), total, spanInterval);return false;});$(next);}//最后⼀页if (intPageIndex == pageS) {$("最后⼀页");}else {var last = $("最后⼀页").click(function () {PageClick($(this).attr("last"), total, spanInterval);return false;});$(last);}} //sucess}); //ajax}; //function}); //readysql语句代码如下CREATE PROCEDURE [dbo].[PAGINATION]@FEILDS VARCHAR(1000),--要显⽰的字段@PAGE_INDEX INT,--当前页码@PAGE_SIZE INT,--页⾯⼤⼩@ORDERTYPE BIT,--当为0时 则为 desc 当为1 时 asc@ANDWHERE VARCHAR(1000)='',--where语句 不⽤加where@ORDERFEILD VARCHAR(100) --排序的字段asDECLARE @EXECSQL VARCHAR(2000)DECLARE @ORDERSTR VARCHAR(100)DECLARE @ORDERBY VARCHAR(100)BEGINset NOCOUNT onIF @ORDERTYPE = 1BEGINSET @ORDERSTR = ' > ( SELECT MAX(['+@ORDERFEILD+'])'SET @ORDERBY = 'ORDER BY '+@ORDERFEILD+' ASC'ENDELSEBEGINSET @ORDERSTR = ' < ( SELECT MIN(['+@ORDERFEILD+'])'SET @ORDERBY = 'ORDER BY '+@ORDERFEILD+' DESC'ENDIF @PAGE_INDEX = 1 --当页码是第⼀页时直接运⾏,提⾼速度BEGINIF @ANDWHERE=''SET @EXECSQL = 'SELECT TOP '+STR(@PAGE_SIZE)+' '+@FEILDS+' FROM [books] '+@ORDERBYELSESET @EXECSQL = 'SELECT TOP '+STR(@PAGE_SIZE)+' '+@FEILDS+' FROM [books] WHERE '+@ANDWHERE+' '+@ORDERBYENDELSEBEGINIF @ANDWHERE=''BEGIN --以⼦查询结果当做新表时 要给表名别名才能⽤SET @EXECSQL = 'SELECT TOP'+STR(@PAGE_SIZE)+' '+@FEILDS+' FROM [books] WHERE '+@ORDERFEILD+@ORDERSTR+' FROM (SELECT TOP '+STR(@PAGE_SIZE*(@PAGE_INDEX-1))+' '+@ORDERFEILD+' FROM [books] '+@ORDERBY+') AS TEMP) '+ @ORDERBYENDELSEBEGINSET @EXECSQL = 'SELECT TOP'+STR(@PAGE_SIZE)+' '+@FEILDS+' FROM [books] WHERE '+@ORDERFEILD+@ORDERSTR+' FROM (SELECT TOP '+ STR(@PAGE_SIZE*(@PAGE_INDEX-1))+' '+@ORDERFEILD+' FROM [books] WHERE '+@ANDWHERE+' '+@ORDERBY+') AS TEMP) AND '+@ANDWHERE+' '+ @ORDERBYENDENDEXEC (@EXECSQL)--这⾥要加括号END

2023年6月21日发(作者:)

ajax⾼效分页查询,基于Jquery+Ajax+Json⾼效分页实现代码代码如下using System;using ;using ent;using ;using c;using ization;public class GetData : IHttpHandler {public void ProcessRequest (HttpContext context) {tType = "text/plain";var pageIndex = t["PageIndex"];string connectionString = @"Data Source=KUSESQLEXPRESS;Initial Catalog=bookshop;Integrated Security=True";//判断当前索引存不存在,如果不存在则获取记录的总数。if (OrEmpty(pageIndex)){//获取查询记录总数的sql语句string sql = "select count(-1) from books";int count = 0;se(eScalar(connectionString, , sql, null).ToString(), out count);(count);();}//当根据索引获取数据else{int currentPageIndex = 1;se(pageIndex, out currentPageIndex);SqlParameter[] parms = new SqlParameter[] {new SqlParameter("@FEILDS",ar,1000),new SqlParameter("@PAGE_INDEX",,10),new SqlParameter("@PAGE_SIZE",,10),new SqlParameter("@ORDERTYPE",,2),new SqlParameter("@ANDWHERE",r,1000),new SqlParameter("@ORDERFEILD",r,100)};parms[0].Value = "*";//获取所有的字段parms[1].Value = pageIndex;//当前页⾯索引parms[2].Value = 10;//页⾯⼤⼩parms[3].Value = 0;//升序排列parms[4].Value = "";//条件语句parms[5].Value = "ID";//排序字段Listlist = new List();using (SqlDataReader sdr = eReader(connectionString, Procedure, "PAGINATION",parms)){while (()){(new Book { Title = sdr[2].ToString(), Auhor = sdr[2].ToString(), PublishDate = sdr[4].ToString(), ISBN =sdr[5].ToString() });}}(new JavaScriptSerializer().Serialize(list).ToString());//转为Json格式}}public bool IsReusable {get {return false;}}}public class Book{public string Title { get; set; }public string Auhor { get; set; }public string PublishDate { get; set; }public string ISBN { get; set; }}显⽰页⾯代码如下/*显⽰数据内容*//*显⽰分页条*/js代码代码如下$(function () {$.post("", null, function (data) {var total = data;PageClick(1, total, 3);});PageClick = function (pageIndex, total, spanInterval) {$.ajax({url: "",data: { "PageIndex": pageIndex },type: "post",dataType: "json",success: function (data) {//索引从1开始//将当前页索引转为int类型var intPageIndex = parseInt(pageIndex);//获取显⽰数据的表格var table = $("#content");//清楚表格中内容$("#content tr").remove();//向表格中添加内容for (var i = 0; i < ; i++) {($("" +data[i].Title+ "" +data[i].Auhor+ "" +data[i].PublishDate+ "" +data[i].ISBN+ ""));} //for//创建分页//将总记录数结果 得到 总页码数var pageS = totalif (pageS % 10 == 0) pageS = pageS / 10;else pageS = parseInt(total / 10) + 1;var $pager = $("#pager");//清楚分页div中的内容$("#pager span").remove();$("#pager a").remove();//添加第⼀页if (intPageIndex == 1)$("第⼀页");else {var first = $("第⼀页").click(function () {PageClick($(this).attr('first'), total, spanInterval);return false;});$(first);}//添加上⼀页if (intPageIndex == 1)$("上⼀页");else {var pre = $("上⼀页").click(function () {PageClick($(this).attr('pre'), total, spanInterval);return false;});$(pre);}//设置分页的格式 这⾥可以根据需求完成⾃⼰想要的结果var interval = parseInt(spanInterval); //设置间隔var start = (1, intPageIndex - interval); //设置起始页var end = (intPageIndex + interval, pageS)//设置末页if (intPageIndex < interval + 1) {end = (2 * interval + 1) > pageS ? pageS : (2 * interval + 1);}if ((intPageIndex + interval) > pageS) {start = (pageS - 2 * interval) < 1 ? 1 : (pageS - 2 * interval);}//⽣成页码for (var j = start; j < end + 1; j++) {if (j == intPageIndex) {var spanSelectd = $("" + j + "");$(spanSelectd);} //ifelse {var a = $("" + j + "").click(function () {PageClick($(this).text(), total, spanInterval);return false;});$(a);} //else} //for//上⼀页if (intPageIndex == total) {$("下⼀页");}else {var next = $("下⼀页").click(function () {PageClick($(this).attr("next"), total, spanInterval);return false;});$(next);}//最后⼀页if (intPageIndex == pageS) {$("最后⼀页");}else {var last = $("最后⼀页").click(function () {PageClick($(this).attr("last"), total, spanInterval);return false;});$(last);}} //sucess}); //ajax}; //function}); //readysql语句代码如下CREATE PROCEDURE [dbo].[PAGINATION]@FEILDS VARCHAR(1000),--要显⽰的字段@PAGE_INDEX INT,--当前页码@PAGE_SIZE INT,--页⾯⼤⼩@ORDERTYPE BIT,--当为0时 则为 desc 当为1 时 asc@ANDWHERE VARCHAR(1000)='',--where语句 不⽤加where@ORDERFEILD VARCHAR(100) --排序的字段asDECLARE @EXECSQL VARCHAR(2000)DECLARE @ORDERSTR VARCHAR(100)DECLARE @ORDERBY VARCHAR(100)BEGINset NOCOUNT onIF @ORDERTYPE = 1BEGINSET @ORDERSTR = ' > ( SELECT MAX(['+@ORDERFEILD+'])'SET @ORDERBY = 'ORDER BY '+@ORDERFEILD+' ASC'ENDELSEBEGINSET @ORDERSTR = ' < ( SELECT MIN(['+@ORDERFEILD+'])'SET @ORDERBY = 'ORDER BY '+@ORDERFEILD+' DESC'ENDIF @PAGE_INDEX = 1 --当页码是第⼀页时直接运⾏,提⾼速度BEGINIF @ANDWHERE=''SET @EXECSQL = 'SELECT TOP '+STR(@PAGE_SIZE)+' '+@FEILDS+' FROM [books] '+@ORDERBYELSESET @EXECSQL = 'SELECT TOP '+STR(@PAGE_SIZE)+' '+@FEILDS+' FROM [books] WHERE '+@ANDWHERE+' '+@ORDERBYENDELSEBEGINIF @ANDWHERE=''BEGIN --以⼦查询结果当做新表时 要给表名别名才能⽤SET @EXECSQL = 'SELECT TOP'+STR(@PAGE_SIZE)+' '+@FEILDS+' FROM [books] WHERE '+@ORDERFEILD+@ORDERSTR+' FROM (SELECT TOP '+STR(@PAGE_SIZE*(@PAGE_INDEX-1))+' '+@ORDERFEILD+' FROM [books] '+@ORDERBY+') AS TEMP) '+ @ORDERBYENDELSEBEGINSET @EXECSQL = 'SELECT TOP'+STR(@PAGE_SIZE)+' '+@FEILDS+' FROM [books] WHERE '+@ORDERFEILD+@ORDERSTR+' FROM (SELECT TOP '+ STR(@PAGE_SIZE*(@PAGE_INDEX-1))+' '+@ORDERFEILD+' FROM [books] WHERE '+@ANDWHERE+' '+@ORDERBY+') AS TEMP) AND '+@ANDWHERE+' '+ @ORDERBYENDENDEXEC (@EXECSQL)--这⾥要加括号END