栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > 后端开发 > C/C++/C# > C#教程

Jquery+Ajax+Json+存储过程实现高效分页

C#教程 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

Jquery+Ajax+Json+存储过程实现高效分页

之前在做分页时,很多朋友都是用Jquery分页插件,之前我就用的jquery.paper,有需要的朋友可以联系我,接下来小编给大家分享用Jquery+Ajax+Json+存储过程实现高效分页。

实现此功能用分页存储过程,pagination,js样式,废话不多了,具体请看下面代码

 分页存储过程:PAGINATION

CREATE PROCEDURE [dbo].[PAGINATION] 
 @FEILDS VARCHAr(),--要显示的字段
 @PAGE_INDEX INT,--当前页码
 @PAGE_SIZE INT,--页面大小
 @ORDERTYPE BIT,--当为时 则为 desc 当为 时 asc
 @ANDWHERe VARCHAr()='',--where语句 不用加where
 @ORDERFEILD VARCHAr(), --排序的字段
 @TABLENAME VARCHAr() --查询的表明
 as
 DECLARE @EXECSQL VARCHAr()
 DECLARE @ORDERSTR VARCHAr()
 DECLARE @ORDERBY VARCHAr()
 BEGIN
   set NOCOUNT on
   IF @ORDERTYPE = 
     BEGIN
SET @ORDERSTR = ' > ( SELECt MAX(['+@ORDERFEILD+'])'
SET @ORDERBY = 'ORDER BY '+@ORDERFEILD+' ASC'
     END
   ELSE 
     BEGIN
SET @ORDERSTR = ' < ( SELECT MIN(['+@ORDERFEILD+'])'
SET @ORDERBY = 'ORDER BY '+@ORDERFEILD+' DESC'
     END
   IF @PAGE_INDEX = --当页码是第一页时直接运行,提高速度
     BEGIN
IF @ANDWHERe=''
  SET @EXECSQL = 'SELECT TOP '+STR(@PAGE_SIZE)+' '+@FEILDS+' FROM '+@TABLENAME+' '+@ORDERBY
ELSE
  SET @EXECSQL = 'SELECt TOP '+STR(@PAGE_SIZE)+' '+@FEILDS+' FROM '+@TABLENAME+' WHERe '+@ANDWHERe+' '+ @ORDERBY
     END
   ELSE
     BEGIN
IF @ANDWHERe=''
  BEGIN   --以子查询结果当做新表时 要给表名别名才能用
    SET @EXECSQL = 'SELECt TOP'+STR(@PAGE_SIZE)+' '+@FEILDS+' FROM '+@TABLENAME+' WHERe '+@ORDERFEILD+
   @ORDERSTR+' FROM (SELECt TOP '+STR(@PAGE_SIZE*(@PAGE_INDEX-))+' '+@ORDERFEILD+
   ' FROM '+@TABLENAME+' '+@ORDERBY+') AS TEMP) '+ @ORDERBY
  END
ELSE
  BEGIN
    SET @EXECSQL = 'SELECt TOP'+STR(@PAGE_SIZE)+' '+@FEILDS+' FROM '+@TABLENAME+' WHERe '+@ORDERFEILD+
   @ORDERSTR+' FROM (SELECt TOP '+ STR(@PAGE_SIZE*(@PAGE_INDEX-))+' '+@ORDERFEILD+
   ' FROM '+@TABLENAME+' WHERe '+@ANDWHERe+' '+@ORDERBY+') AS TEMP) AND '+@ANDWHERe+' '+ @ORDERBY
  END
     END
 EXEC (@EXECSQL)--这里要加括号
 END

分页样式:


a,area  { -moz-outline-style: none; blr:expression(this.onFocus=this.blur()); text-decoration:none} 
div.badoo { padding:px; text-align:center; }
div.badoo a { border:px solid #ededed; padding:px px; color:#; border-radius:px; margin-right:px;}
div.badoo a:hover {border:px solid #ffa; color: #ffa; }
div.badoo a:active {border:px solid #ffa; margin-right:px;}
div.badoo span { border:px solid #EDEDED; padding:px px; color:#f;font-weight:bold; background:#FAFAFA; border-radius:px; margin-right:px;}
div.badoo span.disabled { border:px solid #EDEDED; padding:px px; color:#; margin-right:px; font-weight:;}

首先创建一般处理程序,读取数据库中内容,得到返回值.
创建文件,GetData.ashx.
我这里是用的存储过程,存储过程会再下面粘出来,至于数据只是实例,你们可根据需求自行读取数据

using System;
using System.Web;
using System.Data.SqlClient;
using System.Data;
using System.Collections.Generic;
using System.Web.script.Serialization;
using Model;

context.Response.ContentType = "text/plain";
      var pageIndex = context.Request["PageIndex"];
      //判断当前索引存不存在,如果不存在则获取记录的总数。
      if (string.IsNullOrEmpty(pageIndex))
      {
 //获取查询记录总数的sql语句
 int count = ;
 int.TryParse(new BLL.t_profit().SelectAllNum(), out count);
 context.Response.Write(count);
 context.Response.End();
      }
      //当根据索引获取数据
      else
      {
 int currentPageIndex = ;
 int.TryParse(pageIndex, out currentPageIndex);
 SqlParameter[] parms = new SqlParameter[] { 
    new SqlParameter("@FEILDS",SqlDbType.NVarChar,),
    new SqlParameter("@PAGE_INDEX",SqlDbType.Int,),
    new SqlParameter("@PAGE_SIZE",SqlDbType.Int,),
    new SqlParameter("@ORDERTYPE",SqlDbType.Int,),
    new SqlParameter("@ANDWHERe",SqlDbType.VarChar,),
    new SqlParameter("@ORDERFEILD",SqlDbType.VarChar,)
    };
 parms[].Value = "id,name,sex,tel";//获取所有的字段
 parms[].Value = pageIndex;//当前页面索引
 parms[].Value = ;//页面大小
 parms[].Value = ;//升序排列
 parms[].Value = "";//条件语句
 parms[].Value = "id";//排序字段
 List list = new List();
 using (SqlDataReader sdr = Yoodor.DAL.SqlHelper.ExecuteReader(CommandType.StoredProcedure, "PAGINATION", parms))
 {
   while (sdr.Read())
   {
     list.Add(new Book { id = sdr[].ToString(), name = sdr[].ToString(), sex = sdr[].ToString(), tel = sdr[].ToString() });
   }
 }
 context.Response.Write(new JavascriptSerializer().Serialize(list).ToString());//转为Json格式
      }


 public string id { get; set; }
    public string name { get; set; } 
    public string sex { get; set; }
    public string tel { get; set; }

样式代码:


a,area  { -moz-outline-style: none; blr:expression(this.onFocus=this.blur()); text-decoration:none} 
div.badoo { padding:px; text-align:center; }
div.badoo a { border:px solid #ededed; padding:px px; color:#; border-radius:px; margin-right:px;}
div.badoo a:hover {border:px solid #ffa; color: #ffa; }
div.badoo a:active {border:px solid #ffa; margin-right:px;}
div.badoo span { border:px solid #EDEDED; padding:px px; color:#f;font-weight:bold; background:#FAFAFA; border-radius:px; margin-right:px;}
div.badoo span.disabled { border:px solid #EDEDED; padding:px px; color:#; margin-right:px; font-weight:;}


js代码


/// /// Execute a SqlCommand that returns a resultset against the database specified in the connection string /// using the provided parameters. /// /// 一个有效的数据库连接字符串 /// SqlCommand命令类型 (存储过程, T-SQL语句, 等等。) /// 存储过程的名字或者 T-SQL 语句 /// 以数组形式提供SqlCommand命令中用到的参数列表 /// A SqlDataReader containing the results public static SqlDataReader ExecuteReader( CommandType cmdType, string cmdText, params SqlParameter[] commandParameters) { SqlCommand cmd = new SqlCommand(); SqlConnection conn = new SqlConnection(connectionString); // we use a try/catch here because if the method throws an exception we want to // close the connection throw code, because no datareader will exist, hence the // commandBehaviour.CloseConnection will not work try { PrepareCommand(cmd, conn, null, cmdType, cmdText, commandParameters); SqlDataReader rdr = cmd.ExecuteReader(CommandBehavior.CloseConnection); cmd.Parameters.Clear(); return rdr; } catch (Exception ex) { conn.Close(); throw new Exception(ex.Message); } }

以上就是本文使用Jquery+Ajax+Json+存储过程实现高效分页的全部内容,希望大家喜欢。

转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/124839.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号