Vue.js实现分页查询功能

本文实例为大家分享了Vue.js实现分页查询的具体代码,供大家参考,具体内容如下

vue.js的使用如下:

1、引入vue.js

<script src="~/js/vue2.2.4.js"></script>

a、分页条

<ul class="pagination" id="pagination1"></ul>

b、分页条js、css

<link href="~/css/page.css" rel="stylesheet" />
<script src="~/js/jqPaginator.js"></script>

2、分页的方法

 public JsonResult GrtUserData(int page,int rows)
    {
      //top分页法 row_number分页
      TextEntities tes = new TextEntities();
      //分页查询
      List<Users> ulist = tes.Users.OrderBy(a=>a.Id).Skip((page-1)*rows).Take(rows).ToList();
      int allcount = tes.Users.Count();  //总页数
      int allpage = allcount / rows;
      if (allcount % rows !=0)

        allpage = allpage + 1;
      DTO_Page dp = new DTO_Page();
      dp.data = ulist;
      dp.allpage = allpage;
      return Json(dp, JsonRequestBehavior.AllowGet);
    }

3、封装page方法

public class DTO_Page
  {
    public int rows { get; set; }
    public int allpage { get; set; }
    public List<Users> data { get; set; }
  }

4、定义获取总页数的方法

 public JsonResult GetAllpage(int rows)
    {
      TextEntities tes = new TextEntities();
      int allcount = tes.Users.Count();  //总页数
      int allpage = allcount / rows;
      if (allcount % rows != 0)
        allpage = allpage + 1;
      return Json(allpage);

    }

5、前台分页方法,获取后台的数据,实现分页的动态性

<script>
  //封装一个查询后台的方法
  var getdata = function (page, rows,vm) {
    $.ajax({
      url: '/home/GrtUserData',
      type: 'get',
      data: { page: page, rows: rows },
      success: function (dto_page) {
        vm.mydata = dto_page.data;
        $.jqPaginator('#pagination1', {
          totalPages: dto_page.allpage,
          visiblePages: 5,
          currentPage: page,
          onPageChange: function (num, type) {
            //怎么把第一次忽略
            if (type != "init") {
              //更新查询后的页面
              getdata(num, 5,vm);
            }
          }
        });
      }
    });
  }

  $(function () {
    //给更新div添加数据
    var update_vm = new Vue({
      el: "#updatecontent",
      data: {
        userinfo: {}
      }
    })

    //实例化 vue.js (用来给表格提供数据的) 只实例化一次
    var vm = new Vue({
      el: '#content',
      data: {
        mydata: []
      },
      methods: {
        butdelete: function (_id)     //删除
        {
          $.post('/home/BatchDelete', { ids: _id }, function (result) {
            if (result > 0) {
              location.href = "/home/UserMan";
            }
            else {
              alert("删除失败");
            }
          });
        },
        butupdate: function (item, event)     //更新
        {
          //使用jquery打开编辑状态
          //$(event.target).parent().parent().find("td:gt(0):lt(4)").each(function (index,item) {
          //  $(item).html("<input type='text' style='width:50px' value=" + $(item).html() + ">");
          //});

          //复制对象
         // var databack = $.extend({},item);
          update_vm.$data.userinfo = item;
          layer.open({
            type: 1,
            area: ["300px", "230px"],
            title: "更新",
            content: $("#updatecontent"),
            btn: ["保存"],
            yes: function (index) {
              $.post('/home/Update', update_vm.$data.userinfo, function (result) {
                //可以把vue.js数据替换把更新后到页面
                // vm.$data.mydata.splice(1, 1, update_vm.$data.userinfo);
              });
            },
            cancel: function () //点击关闭按钮
            {
             // alert(databack.UserName);
              // console.log(databack);
            }
          });
        }
      }
    });   

    //默认第一个请求
    getdata(2,5,vm);
    $("#deletebut").click(function () {
      //存放需要批量删除的id
      var ids = "";
      $(".mytable input[type='checkbox']:checked").each(function (index, item) {
        ids += $(item).val() + ",";
      });
      $.post('/home/BatchDelete', { ids: ids }, function (result) {
        if (result > 0) {
          location.href = "/home/UserMan";
        }
        else {
          alert("删除失败");
        }
      });
    });
  });
</script>

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

(0)

相关推荐

  • Vue.js进行查询操作的实例详解

    Vue.js进行查询操作的实例详解 实例代码: <!DOCTYPE html> <html> <head> <meta charset="UTF-8"> <script src="../lib/vue.min.js" type="text/javascript" ></script> <title>字符转换</title> </head>

  • 基于Vue如何封装分页组件

    使用Vue做双向绑定的时候,可能经常会用到分页功能 接下来我们来封装一个分页组件 先定义样式文件 pagination.css ul, li { margin: 0px; padding: 0px; } .page-bar { -webkit-touch-callout: none; -webkit-user-select: none; -khtml-user-select: none; -moz-user-select: none; -ms-user-select: none; user-se

  • 利用Vue.js框架实现火车票查询系统(附源码)

    前言 Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的.相比于Angular.js,Vue.js提供了更加简洁.更易于理解的API,使得我们能够快速地上手并使用Vue.js 今天,我就要基于这个库来搭建一个火车票查询系统.首先我们的机器上得有NodeJS环境,并且安装了npm包管理工具.因为vue是跑在node环境下的,并且我们需要用npm来安装vue. 在终端输入npm install --global vue-cli我们来全局安装vue-cli

  • 基于Vue.js的表格分页组件

    一.Vue.js简介 1.Vue的主要特点: (1) 简洁 (2) 轻量 (3)快速 (4) 数据驱动 (5) 模块友好 (6) 组件化 (1) 简洁 下面看一段Angular的实现双向绑定的代码 // html <body ng-app="myApp"> <div ng-controller="myCtrl"> <p>{{ note }}</p> <input type="text" ng-

  • 基于vue.js的分页插件详解

    Vue.js 的目标是通过尽可能简单的 API 实现响应的数据绑定和组合的视图组件.想了解更多,请戳http://cn.vuejs.org/ html代码: <div class="page-bar" v-else> <ul> <li style="width: 11%" v-if="showFirst"> <a v-on:click="cur--"> <<</

  • 利用Vue.js实现求职在线之职位查询功能

    前言 Vue.js是当下很火的一个JavaScript MVVM库,它是以数据驱动和组件化的思想构建的.相比于Angular.js,Vue.js提供了更加简洁.更易于理解的API,使得我们能够快速地上手并使用Vue.js. 本文主要介绍的是关于利用Vue.js实现职位查询功能的相关内容,分享出来供大家参考学习,下面来一起看看详细的介绍: 知识点: v-on, v-for, v-if, props, $emit,动态Prop, Class 与 Style 绑定 P1 分页查询 查询参数 查询参数:

  • vue分页组件table-pagebar使用实例解析

    之前一直接触都是原始的前端模型,jquery+bootstrap,冗杂的dom操作,繁琐的更新绑定.接触vue后,对前端MVVM框架有了全新的认识.本文是基于webpack+vue构建,由于之前的工作主要是基于java的服务端开发工作,对前端框架和组件的理解,不够深入,借此来记录在前端框架使用和构建中的点点滴滴. 此分页组件参照于bootstrap-datatable底部分页开发完成,相关参数增加自定义功能. 最终使用展现效果图如下,数据来源于cnodejs[https://cnodejs.or

  • Vue form 表单提交+ajax异步请求+分页效果

    废话不多说了,直接给大家贴代码了,具体代码如下所示: <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8"> <meta name="viewport" content="width=device-width,initial-scale=1"> <meta charset="UTF-

  • vue.js表格分页示例

    分页一般和表格一起用,分页链接作为表格的一部分,将分页链接封装成一个独立的组件,然后作为子组件嵌入到表格组件中,这样比较合理. 效果: 代码: 1.注册一个组件 js Vue.component('pagination',{ template:'#paginationTpl', replace:true, props:['cur','all','pageNum'], methods:{ //页码点击事件 btnClick: function(index){ if(index != this.cu

  • VUEJS实战之利用laypage插件实现分页(3)

    前言 在上两章的工作中,我们顺利的实现了首页的渲染,但是,只是渲染了一页数据而已.我们可能需要渲染更多的数据,这时候,我们就有必要考虑分页了. 分页有很多种方式,比如异步加载的分页方式.然而对于没有太多使用前端模版框架的朋友来说,一上来就使用这种方式,可能稍微有点难度.因此,我们这章的分页实现,是基于普通的链接分页的方式完成的. 在我们有了更多的前端框架的使用经验之后,我们可以使用更加丰富的分页方法. 事实上,我们自己构建一个分页组件也不是不可以,在移动端我都是自己的代码实现的.但是,我这里要推

随机推荐