jQuery EasyUI Pagination实现分页的常用方法_jquery

EasyUI 的 datagrid 支持服务器端分页,但是官方的资料比较少,以下总结了两种 datagrid 的服务器端分页机制,可根据情况具体使用。

一、使用 datagrid 默认机制

后台:

public JsonResult GetQuestionUnit()
{
 // easyui datagrid 自身会通过 post 的形式传递 rows and page
 int pageSize = Convert.ToInt32(Request["rows"]);
 int pageNum = Convert.ToInt32(Request["page"]);

 var dal = new QsQuestionUnitDal();
 var questionUnits = dal.GetList("",pageNum -1, pageSize);
 // 返回到前台的值必须按照如下的格式包括 total and rows
 var easyUIPages = new Dictionary<string, object>();
 easyUIPages.Add("total", questionUnits.FirstOrDefault() == null ? 0 : questionUnits.FirstOrDefault().ReqCount);
 easyUIPages.Add("rows", questionUnits);

 return Json(easyUIPages, JsonRequestBehavior.AllowGet);
}

前台:

(function () {(function () {('#dgd').datagrid({
  pageNumber: 1,
  //url: "@ViewBag.Domain/Paper/GetQuestionUnit?arg1=xxx",
  columns: [[
   { field: 'Id', title: 'id', width: 100 },
   { field: 'Name', title: 'name', width: 100 },
  ]],
  pagination: true,
  rownumbers: true,

  pageList: [3, 6]
 });

 var p = ('#dgd').datagrid('getPager');('#dgd').datagrid('getPager');(p).pagination({
  beforePageText: '第',//页数文本框前显示的汉字
  afterPageText: '页 共 {pages} 页',
  displayMsg: '共{total}条数据',

 });
});

你需要把 ('#dgd').datagrid 方法放置到

$(function () {

});

如果企图通过其它的 JS 方法来调用 ('#dgd').datagrid 方法,则不会得到正确的分页结果。

可以看到,上面 JS 代码中 url 这一行是被注释掉了。如果我们不需要做别的操作,页面一加载就打算查询出数据,则可以不注释掉该代码。但是,往往,有的时候,url 的参数,如 arg1 的值需要在界面上进行某些操作,然后再通过 JS 代码去得到的,这个时候,就应该注释掉 url,而改由在别的地方赋值,如:

var step1Ok = function () {

 $('#dgd').datagrid({
  url: "@ViewBag.Domain/Paper/GetQuestionUnit?arg1=xxx",
 });

};

在上面的代码中,我们可以假设是点了界面的某个按钮,调用了 step1Ok 这个方法后,才会去 url 查询数据,并呈现到 UI 中去。

二、利用 Ajax 获取数据并填充 Datagrid

如果想追求更大的灵活性,我们可以不使用 datagrid 的默认机制,即指定 url 的方式去获取数据,而是通过 ajax 来获取数据并填充 datagrid。使用这种方式,仍旧需要把 ('#dgd').datagrid 方法放置到

$(function () {

});

后台代码不变,只不过,点击某个按钮,调用 step1Ok 这个方法,变成了:

 var step1Ok = function () {

  .messager.progress(title:′Pleasewaiting′,msg:′Loadingdata...′,text:′PROCESSING.......′);varp=.messager.progress(title:′Pleasewaiting′,msg:′Loadingdata...′,text:′PROCESSING.......′);varp=('#dgd').datagrid('getPager');
  $(p).pagination({
   onSelectPage: function (pageNumber, pageSize) {
    alert('onSelectPage pageNumber:' + pageNumber + ',pageSize:' + pageSize);
    getData(pageNumber, pageSize);
   }
  });

  getData(1,3);

 };

第一次调用的时候,将会获取第一页的3条数据:

getData(1,3);

然后我们可以看到,同时,我们还为 pagination 的 onSelectPage 事件创建了一个时间处理器,这样,当改天页面的时候,我们就会去:

getData(pageNumber, pageSize);
另外,由于绕开了 datagrid 的原有机制进行分页,我们采用了自己的遮盖 $.messager.progress,然后在 ajax 的 success 中取消遮盖就可以了。

getData 方法如下:

var getData = function (page, rows) {
 .ajax({    type: "POST",    url: "@ViewBag.Domain/Paper/GetQuestionUnit",    data: "page=" + page + "&rows=" + rows,    error: function (XMLHttpRequest, textStatus, errorThrown) {     alert(textStatus);.ajax({    type: "POST",    url: "@ViewBag.Domain/Paper/GetQuestionUnit",    data: "page=" + page + "&rows=" + rows,    error: function (XMLHttpRequest, textStatus, errorThrown) {     alert(textStatus);.messager.progress('close');
  },
  success: function (data) {
   //.each(data,function(i,item)//alert(item);//);.each(data,function(i,item)//alert(item);//);.messager.progress('close');
   $('#dgd').datagrid('loadData', data);

  }
 });
};

原文地址:http://www.cnblogs.com/luminji

以上就是本文的全部内容,希望对大家的学习有所帮助。

以上是小编为您精心准备的的内容,在的博客、问答、公众号、人物、课程等栏目也有的相关内容,欢迎继续使用右上角搜索按钮进行搜索easyui
, 分页
pagination
easyui分页pagination、jquery easyui 分页、easyui pagination、easyui的pagination、pagination分页,以便于您获取更多的相关知识。

时间: 2024-10-23 13:28:58

jQuery EasyUI Pagination实现分页的常用方法_jquery的相关文章

jQuery插件pagination实现分页特效_jquery

实用jQuery分页特效插件jquery.pagination.js基于jQuery实现可根据pageselectCallback函数callback调用通过ajax调用动态数据目前的方法是生成JSON数据到JS文件调用的数据是JSON格式数据缺点是数据是一次性读出来的效率会差些插件支持众多参数的自定义配置功能还是很不错的大家可以根据自己的想法进行改进. 使用方法 1.加载插件和jQuery <link rel="stylesheet" href="pagination

在UpdatePanel内jquery easyui效果失效的解决方法_jquery

使用easyui 的好处除了界面还不错之外,也因为使用方便. 复制代码 代码如下: <div class="easyui-tabs" style="width: 300px"> <div title="搜索"> ...</div> <div title="选择">...</div> <div title="返回">...</div

浅析jQuery EasyUI中的tree使用指南_jquery

本文记录的是带领成员开发一个小模块功能的时候,需要用到弹出窗口加载树状级联单位选择,最后决定用采用jQuery+EasyUI插件进行开发.但是在使用EasyUI中tree的插件时,碰到了不少麻烦.为了提供弹出树的显示速度,就采用异步加载数节点值,首先先加载根节点,然后根据点击的节点展开加载子节点. 往往结果和预期的都不一样,困惑了几天,展开后子节点是动态加载了,但是收缩后无法清空之前填充的数据:第二次在展开时,子节点又被重复加载了一遍,造成了数据重复显示,并没有提供清除子节点的方法.想尽了各种办

jQuery处理图片加载失败的常用方法_jquery

本文实例讲述了jQuery处理图片加载失败的常用方法.分享给大家供大家参考.具体如下: 这里演示用 jQuery 替换源来提醒用户加载失败及隐藏的方法. // 方法 1:更换图片地址 $('img').error(function(){ $(this).attr('src', '加载失败.png'); }); // 方法 2:隐藏它 $("img").error(function(){ $(this).hide(); }); 希望本文所述对大家的jQuery程序设计有所帮助. 以上是小

jquery easyui combobox模糊过滤(示例代码)_jquery

修改jquery easyui combobox模糊过滤 复制代码 代码如下: filter:function(q,row){ var opts=$(this).combobox("options"); //return row[opts.textField].indexOf(q)==0;// return row[opts.textField].indexOf(q)>-1;//将从头位置匹配改为任意匹配 },formatter:function(row){ var opts=$

JQuery+EasyUI轻松实现步骤条效果_jquery

EasyUI 简介 easyui是一种基于jQuery的用户界面插件集合. easyui为创建现代化,互动,JavaScript应用程序,提供必要的功能. 使用easyui你不需要写很多代码,你只需要通过编写一些简单HTML标记,就可以定义用户界面. easyui是个完美支持HTML5网页的完整框架. easyui节省您网页开发的时间和规模. easyui很简单但功能强大的. jQuery EasyUI 提供易于使用的组件,它使 Web 开发人员能快速地在流行的 jQuery 核心和 HTML5

jQuery EasyUI 获取tabs的实例解析_jquery

左边tree,右边tabs.点击tree增加相应的tabs function addtabs(node) { var start = "; var end = "; if(('#tt').tabs('exists',node.text)) {('#tt').tabs('select',node.text); ('#tt').tabs('select',node.text); } else {('#tt').tabs('add',{ "title":node.text

jQuery easyui刷新当前tabs的方法_jquery

更新特定的选项卡面板 可使用update方法,param参数包含2个属性: tab: 将被更新的选项卡. options: 选项卡相关配置项. Example: //当前tab var current_tab = $('#frame_tabs').tabs('getSelected'); $('#frame_tabs').tabs('update',{ tab:current_tab, options : { content : '<iframe scrolling="auto"

jQuery EasyUi实战教程之布局篇_jquery

jQuery EasyUI Layout是一种基于jQuery的布局框架,今天初次使用Jquery EasyUi,简单的做了个布局页面感觉还不错,给大家分享一下,就是不知道Jquery EasyUi浏览器兼容性怎么样. 最后效果图如下: 使用Jquery EasyUi开发之前首先要引用Jquery EasyUi的Js和Css文件,引用如下: <script src="../jquery.min.js" type="text/javascript"><