微信小程序实现分页功能

 更新时间:2022年08月24日 14:29:06   作者:蛮笋  
这篇文章主要为大家详细介绍了微信小程序实现分页功能,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下

本文实例为大家分享了微信小程序实现分页的具体代码,供大家参考,具体内容如下

今天被提了个需求,需要小程序上实现分页,搜索能力不行,没找到demo,自己想了一下逻辑然后,就自己写了,不知道有没有相同的,如果比我的思路好分享一下,这个是我刚刚写出来的,后期可以进行修改,拿去用吧,写完后感觉挺简单的没有特别的思路完全可以优化,上代码

小程序端

wxml

<!-- 有数据的话循环第一个就欧剋啦 -->
<view wx:for="{{allworkflow}}" wx:key="{{item}}"   style='margin-top:20rpx;'>
  <view class='outer_container' bindtap='dd_detail' data-id='{{item.id}}'>
    <view class='one'>订单类型:{{item.type}}
      <view class='right'>></view>
    </view>
    <view class='two'>
      订单日期:{{item.yvtime}}
      <view class='right_2'>订单状态:
        <text bindtap='dd_status' data-id='{{item.id}}' wx:if="{{item.sta=='待审核' || item.sta=='审核通过'}}" style='color: rgb(79, 193, 229);'>{{item.sta}}</text>
        <text bindtap='dd_status' wx:else="{{item.sta=='审核失败'}}" style='color:rgb(255,0,0)'>{{item.sta}}</text>
      </view>
    </view>
  </view>
</view>
<view class="nav" >
    <!-- <text  wx:if="{{(page1-step)>0}}" bindtap='pu' style='color: rgb(79, 193, 229);'>
    上一页
    </text> -->
    <text   bindtap='pu' style='color: rgb(79, 193, 229);'>
    上一页
    </text>
    <text bindtap='dd_status' wx:if="{{page1<=allpage}}" data-id='{{page1}}' style='color: rgb(79, 193, 229);'>
    第{{page1}}页
    </text>
    <text bindtap='dd_status'  wx:if="{{page2<=allpage}}" data-id='{{page2}}' style='color: rgb(79, 193, 229);'>
    第{{page2}}页
    </text>
    <text bindtap='dd_status'  wx:if="{{page3<=allpage}}" data-id='{{page3}}' style='color: rgb(79, 193, 229);'>
    第{{page3}}页
    </text>
    <text bindtap='dd_status'  wx:if="{{page4<=allpage}}" data-id='{{page4}}' style='color: rgb(79, 193, 229);'>
    第{{page4}}页
    </text>
    <!-- <text wx:if="{{page4<allpage}}" bindtap='pd' data-id='{{item.id}}' style='color: rgb(79, 193, 229);'>
    下一页
    </text> -->
     <text bindtap='pd' data-id='{{item.id}}' style='color: rgb(79, 193, 229);'>
    下一页
    </text>
    
</view>
<view style="text-align:center">
  <text  data-id='{{item.id}}' style='color: rgb(79, 193, 229);'>
    共{{allpage}}页    当前为第{{nowpage}}页
  </text>
</view>

js

data: {
    allpage:16,//总页数
    nowpage:1,//当前页数
    page1:1,//第一页
    page2:2,//第二页
    page3:3,//‘'‘'
    page4:4,
    step:4,//步长
  },
  /**主要函数*/
  //初始化渲染数据
  onLoad: function (options) {
    var that = this
    wx.request({
      url: "你的网址",
      data: {
        userphone: 你的参数,
      },
      success: function (res) {
        console.log(res);
        if (res.data.code == 0) {
          that.setData({
            allworkflow: res.data.data,//初始数据列表
            allpage:res.data.count//数据总页数
          })
        } else {
          wx.showToast({
            title: '暂无待处理工作流!',
            icon: 'none',
            duration: 20000
          })
        }
      }
    })

  },
  /**
   * 上一页
   */
  pu:function(){
    var now = this.data.page1 - this.data.step;
    if(now>0){
      this.setData({
        page1: this.data.page1 - this.data.step,
        page2: this.data.page2 - this.data.step,
        page3: this.data.page3 - this.data.step,
        page4: this.data.page4 - this.data.step,
      });
    }else{
      wx.showToast({
        title: '已为第一页',
        icon: 'none',
        duration: 1000
      })
    }
  },
  /**
   * 下一页
   */
  pd:function(){
    if (this.data.page4 < this.data.allpage) {
      this.setData({
        page1: this.data.page1 + this.data.step,
        page2: this.data.page2 + this.data.step,
        page3: this.data.page3 + this.data.step,
        page4: this.data.page4 + this.data.step,
      });
    } else {
      wx.showToast({
        title: '已为最后一页',
        icon: 'none',
        duration: 1000
      })
    }
  },
  /**
   * 点击后页面渲染,重新查询数据页面重新渲染
   */
  dd_status:function(e){
    this.setData({
      nowpage: e.currentTarget.dataset.id,
    });
    var that = this
    wx.request({
      url: "你的地址",
      data: {
        userphone: 你的查询参数,
        page: e.currentTarget.dataset.id//当前页数的参
      },
      success: function (res) {
        if (res.data.code == 0) {
          that.setData({
            allworkflow: res.data.data,
          })
        } else {
          wx.showToast({
            title: '没有数据的提示!',
            icon: 'none',
            duration: 20000
          })
        }
      }
    })
  }

wxss

.nav{
  background-color: #fff;
  padding: 26rpx 0;
  color: #7b7b7b;
}
.nav>text{
  width: 16.4%;
  text-align: center;
  display: inline-block;
}
.outer_container{
  width:80%;
  margin:0 auto;
  height:200rpx;
  background-color: white;
  padding-left:40rpx;
  padding-right: 40rpx;
  border-bottom:1rpx solid rgb(214, 214, 214);
  color: rgb(79, 193, 229);
  font-size: 24rpx;
}
.one{
  height:100rpx;
  line-height: 100rpx;
  border-bottom:1rpx solid rgb(218,218,218);
}

.two{
  height:100rpx;
  line-height: 100rpx;
  color:rgb(102, 102, 102)
}

.right{
  float:right;
  font-size: 46rpx;
  line-height: 50rpx;
  color:rgb(218, 218, 218);
}

.right_2{
  float:right;
  line-height: 100rpx;
  color:rgb(102, 102, 102);
}


.divLine{
 background: #D4DADD;
 width: 100%;
 height: 4rpx;
}
.right{
  width:25rpx;
  height:25rpx;
  margin-top:20rpx;
  margin-right:20rpx;
  position:relative;
}

-后台的查询,我是php,你可以java或者其他,毕竟多掌握几门语言没有坏处
-初次渲染的后台

/**数量查询*/
$querysum = "select count(id) as sums from yv_order where user_bankid='$user_bankid' order by id desc";
/**数据查询*/
$query2 = "select yvtype,yvtime,sta,id from yv_order where user_bankid='$user_bankid' order by id desc limit 4";
 $data=array(
    'code'=>0,
    'msg'=>'ok',
    'data'=>$allorder,
    'count'=>ceil($countsum/4),
);
echo json_encode($data,JSON_UNESCAPED_UNICODE);
exit;

-每次点击页数查询的后台

//之后查询的页面
$userphone=$_GET['userphone'];//你许哟啊查询条件的参数
$page=$_GET['page'];//页数
//我的分页是4条一页,你自己按照你自己的来我只提供思路
if($pagel>0){
            $query2 = "select yvtype,yvtime,sta,id from yv_order where user_bankid='$user_bankid' order by id desc limit $pagel,4";
        }else{
            $query2 = "select yvtype,yvtime,sta,id from yv_order where user_bankid='$user_bankid' order by id desc limit 4";
        }
//对不起我只能为你提供片段
$data=array(
    'code'=>0,
    'msg'=>'ok',
    'data'=>$allorder,
);
echo json_encode($data,JSON_UNESCAPED_UNICODE);
exit;

界面展示

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

相关文章

  • javascript分页代码(当前页码居中)

    javascript分页代码(当前页码居中)

    昨天看了妙味课堂的 分页视频教程,今天自己参照其思路,自己写了下,并且自己新增了一个显示页码个数的属性 showPageNum
    2012-09-09
  • js 将线性数据转为树形的示例代码

    js 将线性数据转为树形的示例代码

    这篇文章主要介绍了js 将线性数据转为树形的示例代码,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友们下面随着小编来一起学习学习吧
    2019-05-05
  • JS高级运动实例分析

    JS高级运动实例分析

    这篇文章主要介绍了JS高级运动,结合实例形式分析了javascript运动框架原理、实现与应用技巧,需要的朋友可以参考下
    2016-12-12
  • 小米公司JavaScript面试题

    小米公司JavaScript面试题

    这篇文章主要介绍了小米公司JavaScript面试题的个人解题方法,需要的朋友可以参考下
    2014-12-12
  • JS+HTML实现经典游戏吃豆人

    JS+HTML实现经典游戏吃豆人

    吃豆游戏可以说是我们80,90后共同的回忆录,小时候常常在学习机上玩,所以也就有了强烈的欲望去写。所以本文将利用JS+HTML实现这一经典游戏,需要的可以参考一下
    2022-04-04
  • 微信小程序scroll-view实现左右联动效果

    微信小程序scroll-view实现左右联动效果

    这篇文章主要为大家详细介绍了微信小程序scroll-view实现左右联动效果,文中示例代码介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们可以参考一下
    2021-09-09
  • Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)

    Firefox中通过JavaScript复制数据到剪贴板(Copy to Clipboard 跨浏览器版)

    这篇文章主要介绍了irefox中通过JavaScript复制数据到剪贴板的方法,可以跨浏览器使用,大家可以使用看看
    2013-11-11
  • Javascript中常用类型的格式化方法小结

    Javascript中常用类型的格式化方法小结

    这篇文章主要给大家介绍了Javascript中常用类型的格式化方法,其中包括格式化浮点数、格式化有符号整数(int32)、格式化无符号整数(uint32)、格式化布尔值以及格式化字符串等,文中给出了详细的示例代码,有需要的朋友们可以参考借鉴,下面来一起看看吧。
    2016-12-12
  • 微信小程序使用webview页面转pdf文件代码示例

    微信小程序使用webview页面转pdf文件代码示例

    工作需求,将webview的内容导出到pdf输出,下面这篇文章主要给大家介绍了关于微信小程序使用webview页面转pdf文件的相关资料,文中通过代码介绍的非常详细,需要的朋友可以参考下
    2024-09-09
  • js选择并转移导航菜单示例代码

    js选择并转移导航菜单示例代码

    选择并转移导航菜单的方法有很多,本例使用js来实现选择并转移导航菜单,需要的朋友可以参考下
    2014-08-08

最新评论