基于vue和ajax分页的列表页的完善

1.效果

其他操作请看基于vue和ajax的分页

https://blog.csdn.net/g_optimistic/article/details/89105120

2.代码

{% verbatim myblock %}
              <div id="bindData">
                  <table class="table table-bordered">
                      <thead>
                      <tr>
                          <th>姓名</th>
                          <th>性别</th>
                          <th>年龄</th>
                          <th>班级</th>
                          <th>专业</th>
                          <th>管理</th>
                      </tr>
                      </thead>
                      <tbody>
                      <tr v-for="s in page_data">
                          <td>{{ s.name }}</td>
                          <td>{{ s.gender }}</td>
                          <td>{{ s.age }}</td>
{#                          <td>{{ s.classes }}</td>#}
                          <td><input type="text" v-bind:value="s.classes"></td>
                          <td>{{ s.grade }}</td>
                          <td>
                              <button class="btn btn-primary">修改</button>
                              <button class="btn btn-warning">详情</button>
                              <button class="btn btn-danger">删除</button>
                          </td>

                      </tr>
                      </tbody>
                  </table>
                  <ul class="pagination" style="float:right;">
                      <li v-for="p in page_range" class="paginate_button page-item active">
                          <a v-on:click="reload" class="page-link">{{ p }}</a>
                      </li>
                  </ul>
              </div>
          {% endverbatim myblock %}

 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
在使用 MyBatis 和 Vue 实现分页功能,一般需要以下步骤: 1. 在后端使用 MyBatis 实现分页查询。可以使用 MyBatis 提供的分页插件 PageHelper,也可以手动编写 SQL 语句实现分页查询。 2. 在前端使用 Vue 实现分页组件。可以使用第三方的分页组件库,比如 Element UI、Bootstrap Vue 等,也可以自己编写分页组件。 3. 前端向后端发送分页请求。可以通过 Ajax 发送 GET 请求,请求参数中包含当前码、每显示数量等信息。 4. 后端接收请求,进行分页查询并返回结果。返回的结果中包含当前数据、总数据量、总数等信息。 5. 前端接收到结果,更新分页组件显示的码和数据。 下面是一个简单的示例代码,仅供参考: MyBatis 分页查询代码: ```java public interface UserMapper { // 分页查询用户信息 List<User> getUserListByPage(@Param("offset") int offset, @Param("pageSize") int pageSize); } // 使用 PageHelper 分页插件的示例代码 PageHelper.startPage(pageNum, pageSize); List<User> userList = userMapper.getUserListByPage(); PageInfo<User> pageInfo = new PageInfo<>(userList); // 手动编写 SQL 分页查询的示例代码 List<User> userList = userMapper.getUserListByPage(offset, pageSize); int totalCount = userMapper.getUserCount(); int totalPage = (totalCount + pageSize - 1) / pageSize; ``` Vue 分页组件代码: ```html <template> <div> <table> <thead> <tr> <th>姓名</th> <th>年龄</th> <th>性别</th> </tr> </thead> <tbody> <tr v-for="user in userList" :key="user.id"> <td>{{ user.name }}</td> <td>{{ user.age }}</td> <td>{{ user.gender }}</td> </tr> </tbody> </table> <div class="pagination"> <ul> <li v-if="currentPage > 1" @click="changePage(currentPage - 1)">«</li> <li v-for="page in pages" :key="page" :class="{ active: page === currentPage }" @click="changePage(page)"> {{ page }} </li> <li v-if="currentPage < totalPages" @click="changePage(currentPage + 1)">»</li> </ul> </div> </div> </template> <script> export default { data() { return { userList: [], currentPage: 1, pageSize: 10, totalCount: 0, }; }, computed: { totalPages() { return Math.ceil(this.totalCount / this.pageSize); }, pages() { let startPage = Math.max(1, this.currentPage - 2); let endPage = Math.min(this.totalPages, this.currentPage + 2); let pages = []; for (let i = startPage; i <= endPage; i++) { pages.push(i); } return pages; }, }, methods: { changePage(page) { this.currentPage = page; this.getUserList(); }, getUserList() { axios.get('/api/user', { params: { pageNum: this.currentPage, pageSize: this.pageSize, }, }).then(res => { this.userList = res.data.list; this.totalCount = res.data.totalCount; }); }, }, mounted() { this.getUserList(); }, }; </script> ```
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值