当前位置:  编程技术>jquery

jquery pagination插件无刷新分页的实现代码

    来源: 互联网  发布时间:2014-09-03

    本文导语:  本节内容: jquery pagination插件无刷新分页 首先,需要准备文件:jquery.js,jquery.pagination.js,pagination.css,以及table布局的css文件。 引入文件:   代码示例: 接着在页面的body里中加入以下代码: 呈现出来的数据是没有进行...

本节内容:
jquery pagination插件无刷新分页

首先,需要准备文件:jquery.js,jquery.pagination.js,pagination.css,以及table布局的css文件。

引入文件:
 

代码示例:



接着在页面的body里中加入以下代码:
呈现出来的数据是没有进行控件绑定的,完全是由简单的table来呈现数据的。
 

代码示例:





产品名称


产品单价





代码说明:
设定了一个标准的带有的表格,然后再加上了使用到的Jquery的插件—Paination,在这里只需定义一下一个以id为Pagination的层就可以了。

关键的js代码:
 

代码示例:

var orderby = ""; //进行排序的依据
$(document).ready(function() {
InitData(0); //初始化数据
}); // www.
//这个事件是在翻页时用的
function pageselectCallback(page_id, jq) {
InitData(page_id);
}
function InitData(pageIndex) {
var tbody = ""; //声明表格中body部分
$.ajax({ //这里使用到Jquery的ajax方法,具体使用在这里不详细叙述
type: "POST",
dataType: "json",
url: '/DataListWeb/WebService/GetData.ashx', //请求的处理数据
data: "pageIndex=" + (pageIndex + 1) + "&sortType=" + orderby,
//传入的参数,第一个参数就是分页的页数,第二个参数为排序的依据
//下面的操作就是成功返回数据以后,进行数据的绑定
success: function(data) {
$("#linkTable tr:gt(0)").remove();
var myData = data.Products;
$.each(myData, function(i, n) {
var trs = "";
trs += "" + n.ProductName + "" + n.QuantityPerUnit + "";
tbody += trs;
});
$("#linkTable").append(tbody);
}
});
//加入分页的绑定
$("#Pagination").pagination(, {
callback: pageselectCallback,
prev_text: '< 上一页',
next_text: '下一页 >',
items_per_page: 20,
num_display_entries: 6,
current_page: pageIndex,
num_edge_entries: 2
});
}

 

如此,页面所要进行的操作就完成了,注释都写入上面了。

关键的GetData.ashx是如何进行数据操作的,在这里先提示一下,我是用到了SqlHelper类进行sql语句操作的,再辅以分页的存储过程,然后又用到Json.NET,将从数据库得到的数据转换成json,现在发现json真是个好东西的,操作起来比较简便。

代码:
 

代码示例:

string strConn = ConfigurationManager.AppSettings["ConnectionString"];
//具体的页面数
int pageIndex;    
int.TryParse(context.Request["pageIndex"], out pageIndex);
//排序的依据
string orderType = "ProductID";
int sortType = 1;
if (!string.IsNullOrEmpty(context.Request["sortType"]))
{
string[] strArr = context.Request["sortType"].Split('_');
if (strArr[1] == "0")
{
orderType = strArr[0];
sortType = 0;
}
else
{
orderType = strArr[0];
sortType = 1;
}
}
if (pageIndex == 0)
{
pageIndex = 1;
}
//分页的存储过程,把相应的参数传进去即可。
System.Data.SqlClient.SqlParameter[] p =
{
SqlHelper.MakeOutParam("@Counts", SqlDbType.Int, 4),
SqlHelper.MakeInParam("@tblName", SqlDbType.VarChar, 128, "Products"),
SqlHelper.MakeInParam("@strGetFields", SqlDbType.VarChar,200, "ProductName,QuantityPerUnit"),
SqlHelper.MakeInParam("@fldName", SqlDbType.VarChar, 128, orderType),
SqlHelper.MakeInParam("@PageSize", SqlDbType.Int, 4, 20),
SqlHelper.MakeInParam("@PageIndex", SqlDbType.Int, 1, pageIndex),
SqlHelper.MakeInParam("@OrderType", SqlDbType.Bit, 1, sortType),
SqlHelper.MakeInParam("@strWhere", SqlDbType.VarChar, 1500, "")
};
DataTable dt = SqlHelper.ExecuteDataset(strConn, CommandType.StoredProcedure, "sp_PageCut", p).Tables[0];
int pageCount = Convert.ToInt32(p[0].Value.ToString());
//将得到的数据转换成json
context.Response.Write(Util.DataTableToJSON(dt, "Products", pageCount));

DataTableToJson这个方法的代码:
public static string DataTableToJSON(DataTable dt, string tableName, int pageCount)
{
StringBuilder sb = new StringBuilder();
StringWriter sw = new StringWriter(sb);
using (JsonWriter jw = new JsonTextWriter(sw))
{
JsonSerializer ser = new JsonSerializer();
jw.WriteStartObject();
jw.WritePropertyName(tableName);
jw.WriteStartArray();
#region TableName属性
foreach (DataRow dr in dt.Rows)
{
jw.WriteStartObject();
foreach (DataColumn dc in dt.Columns)
{
jw.WritePropertyName(dc.ColumnName);
ser.Serialize(jw, dr[dc].ToString());
}
jw.WriteEndObject();
}
#endregion
jw.WriteEndArray();
jw.WriteEndObject();
sw.Close();
jw.Close();
}
return sb.ToString();
}

声明绑定的table,然后在服务端获取数据,再把得到的数据转化成json,在页面里面将数据绑定完成,一气呵成真是不错,看得呈现的数据心里比较美吧。

不过此时,你会注意到页面怎么只用一页呢,嘻嘻,别忘了一点---就是取出数据的总数,用过分页的都知道,是根据记录的总数来计算到底有多少页的哦。那么我们该怎么做呢?

在页面的Page_Load中得到数据的总数就可以了,然后将其进行数据绑定:
 

代码示例:
$("#Pagination").pagination(这个就是起到了记录总数的作用。
if (!IsPostBack)
{
SqlParameter[] p =
{
SqlHelper.MakeOutParam("@Counts", SqlDbType.Int, 4),
SqlHelper.MakeInParam("@tblName", SqlDbType.VarChar, 128, "Products"),
SqlHelper.MakeInParam("@strGetFields", SqlDbType.VarChar,200, "*"),
SqlHelper.MakeInParam("@fldName", SqlDbType.VarChar, 128, "ProductID"),
SqlHelper.MakeInParam("@PageSize", SqlDbType.Int, 4, 20),
SqlHelper.MakeInParam("@PageIndex", SqlDbType.Int, 1, 1),
SqlHelper.MakeInParam("@OrderType", SqlDbType.Bit, 1, 0),
SqlHelper.MakeInParam("@strWhere", SqlDbType.VarChar, 1500, "")
};
DataTable dt = SqlHelper.ExecuteDataset(conn, CommandType.StoredProcedure, "sp_PageCut", p).Tables[0];
pageCount = Convert.ToInt32(p[0].Value.ToString());
}

至此,利用jquery的插件---pagination进行分页就介绍完了。

总结:
声明绑定的table,利用jquery的ajax方法进行数据绑定的,然后在后台得到数据转换为json。


    
 
 

您可能感兴趣的文章:

  • jQuery分页插件 Pagination jQuery Plugin
  • jQuery分页插件 jQuery Pagination
  • jQuery 分页插件 jquery.honey.pagination
  • jQuery 插件 twbs-pagination
  • jQuery条目展示插件 Easy Paginate
  • jQuery的分页插件 Smart Paginator
  • jQuery表格分页插件 Table Pagination
  • jquery.pagination与JSON实现动态无刷新分页的代码
  • jquery插件jquery倒计时插件分享
  • jQuery图片轮换插件 jQuery Dynamic Slideshow
  • jquery上传插件fineuploader上传文件使用方法(jquery图片上传插件)
  • jQuery 内容滑动插件 Basic jQuery Slider
  • jQuery圆角插件 jQuery Corners
  • jQuery右键菜单插件 jQuery ContextMenu
  • jQuery日历插件 jQuery Week Calendar
  • jQuery实现CSS3动画效果的插件 jQuery Transit
  • jQuery消息提醒插件 jQuery Notty
  • jQuery无限幻灯片插件 jQuery Carousel
  • jQuery多值输入插件 jQuery Manifest
  • jQuery向导插件 Jquery Wizard Plugin
  • jQuery相册插件 jQuery.popeye
  • jQuery的中文日历插件 jQuery.datePickerCn
  • jQuery的气泡提示插件 jquery.ns_bub.js
  • jQuery对话框插件 jquery.modalbox
  • jQuery的OpenSocial插件 OpenSocial jQuery
  • jQuery链接插件 jquery.biggerlink
  • 在线客服jQuery 插件 jQuery.onServ
  • jQuery日历插件 jQuery Verbose Calendar
  •  
    本站(WWW.)旨在分享和传播互联网科技相关的资讯和技术,将尽最大努力为读者提供更好的信息聚合和浏览方式。
    本站(WWW.)站内文章除注明原创外,均为转载、整理或搜集自网络。欢迎任何形式的转载,转载请注明出处。












  • 相关文章推荐
  • jquery刷新页面 jquery局部刷新与及全页面刷新
  • 使用jquery局部刷新(jquery.load)从数据库取出数据
  • Jquery更换主题同时刷新iframe页面的代码举例
  • jquery刷新aspx中iframe的src的代码
  • jQuery 定时局部刷新(setInterval)方法总结
  • Jquery 定时局部刷新的代码举例
  • jquery禁用右键单击功能屏蔽F5刷新
  • jquery在firefox中刷新iframe页面,提示重复之前动作的解决方法
  • jquery ajax 局部刷新小案例
  • Jquery 随机刷新页面背景图片
  • jquery刷新页面代码及js常用函数汇总
  • 页面刷新时记住滚动条的位置jquery代码
  • Jquery实现无闪烁定时刷新的代码
  • Jquery、Ajax、Struts2定时刷新功能的实现代码
  • Jquery 无刷新提交表单的实例代码
  • Jquery、Ajax、Struts2完成定时刷新的方法
  • jquery捕获超链接事件并局部刷新的代码一例
  • jquery 局部刷新(jsp环境)
  • jquery ajax 无刷新提交数据与无刷新登录的例子
  • jquery控制自动刷新的代码举例
  • 通过javascript库JQuery实现页面跳转功能代码
  • jQuery鼠标动画插件 jquery-ahover
  • jQuery概述,代码举例及最新版下载
  • jQuery UI组件 jQuery UI
  • Jquery操作html复选框checkbox:全选,全不选和反选
  • jQuery的CSV插件 jQuery CSV
  • struts+spring+hibernate+jquery实现分页功能的几个基本类介绍(异步加载)
  • jQuery气泡提示插件 jquery-rollover-tooltip
  • jQuery对话框 jQuery Modal Dialog
  • jQuery 插件 jQuery Ripples
  • 精简版的jQuery jQuery.ish


  • 站内导航:


    特别声明:169IT网站部分信息来自互联网,如果侵犯您的权利,请及时告知,本站将立即删除!

    ©2012-2021,,E-mail:www_#163.com(请将#改为@)

    浙ICP备11055608号-3