分页显示页数过多

原文:http://blog.csdn.net/u011897510/article/details/77823390

核心代码:

@if ($paginator->hasPages())
    @php
    //指定显示的页码数量,取值范围3-n
    $paging_number = 6;
    if($paging_number<3){
    $paging_number = 3;
    }
    //当前页
    $paging_current_page = $paginator->currentPage();
    //共几页
    $paging_last_page = $paginator->lastPage();
    if(($paging_number%2) == 0){
    if($paging_last_page <= $paging_number){
    $paging_start = 1;
    $paging_end = $paging_last_page;
    }else if($paging_current_page < ($paging_number/2+1)){
    $paging_start = 1;
    $paging_end = $paging_number;
    }else if($paging_current_page >= ($paging_number/2+1) && (($paging_current_page + ($paging_number/2 - 1)) <= $paging_last_page)){
    $paging_start = $paging_current_page - ($paging_number/2);
    $paging_end = $paging_current_page + ($paging_number/2 - 1);
    }else{
    $paging_start = $paging_last_page - $paging_number + 1;
    $paging_end = $paging_last_page;
    }
    }else{
    if($paging_last_page <= $paging_number){
    $paging_start = 1;
    $paging_end = $paging_last_page;
    }else if($paging_current_page < ceil($paging_number/2)){
    $paging_start = 1;
    $paging_end = $paging_number;
    }else if($paging_current_page >= ceil($paging_number/2) && (($paging_current_page + floor($paging_number/2)) <= $paging_last_page)){
    $paging_start = $paging_current_page - floor($paging_number/2);
    $paging_end = $paging_current_page + floor($paging_number/2);
    }else{
    $paging_start = $paging_last_page - ($paging_number - 1);
    $paging_end = $paging_last_page;
    }
    }
    @endphp
    <ul class="pagination">
        {{-- Previous Page Link --}}
        @if ($paginator->onFirstPage())
            <li class="disabled"><span>«</span></li>
        @else
            <li><a href="{{ $paginator->previousPageUrl() }}" rel="prev">«</a></li>
        @endif

        {{-- Pagination Elements --}}
        @for ($i = $paging_start; $i <= $paging_end; $i++)
            @if ($i == $paginator->currentPage())
                <li class="active" ><span >{{ $i }}</span></li>
            @else
                <li><a href="{{ $paginator->url($i) }}">{{ $i }}</a></li>
            @endif
        @endfor

        {{-- Next Page Link --}}
        @if ($paginator->hasMorePages())
            <li><a href="{{ $paginator->nextPageUrl() }}" rel="next">»</a></li>
        @else
            <li class="disabled"><span>»</span></li>
        @endif
    </ul>
@endif

 

转载于:https://www.cnblogs.com/wanlibingfeng/p/7767803.html

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Delphi中的DBGrid组件是用于在应用程序中显示和编辑数据库表数据的重要工具。有时候需要对DBGrid进行分页显示,这样可以优化应用程序的性能并提高用户体验。 实现DBGrid分页的一种常见方法是使用分页组件配合DBGrid进行数据处理和显示。可以使用Delphi中内置的TDBNavigator和TDBGrid组件以及自定义的分页组件来实现此功能。 首先,需要将分页组件添加到Delphi的项目中。可以从官方或第三方网站下载并安装适合的分页组件。 接下来,将TDBNavigator组件和TDBGrid组件与分页组件进行关联。通过设置分页组件的属性,可以指定每页显示的记录数、当前页数等信息。 在加载数据时,需要将数据库表中的数据分为多个页进行加载。可以使用SQL语句的LIMIT和OFFSET子句、ADO或BDE组件提供的分页功能来实现此操作。 在分页过程中,需要处理分页组件的事件。比如,当用户点击“下一页”按钮时,需要更新DBGrid中显示的数据,以及在分页组件上更新当前页数等信息。 最后,需要注意在数据操作时维护正确的页码和数据显示。当用户执行增删改操作时,需要更新DBGrid中的数据,并同步更新分页组件中的数据。 通过以上步骤,就可以在Delphi中实现使用DBGrid进行分页显示。这样能够优化应用程序的性能,避免一次性加载过多数据,同时也提供了更好的用户体验,方便用户查看和编辑大量数据。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值