分页控件中的数字按钮计算方法

计算思想:

以当前页码为标杆,使用卡尺的思想,左移,右移,再左移,最后得到起始、结束位置的按钮页码。


@{
    var param = new
    {
        Page = 18,   //当前页
        NumberButton = 5,//数字按钮的个数
        PageSize = 5,//分页数据量
        Records = 94//总数据量
    };
}
@{
    /*****************
     * Author : Kilin
     * Datetime : 2015-05-08
     * Email : [email protected]
     * Description : 在保证当前页码处于中间位置前提下,计算数字按钮的起始和结束位置
     ******************/
    int start = param.Page //开始按钮数字
        , end = 1  //结束按钮数字
        , pageCount = (int)Math.Ceiling((double)param.Records / (double)param.PageSize) //总页数
        , offset = param.NumberButton / 2 //偏移量
        ;
    start -= offset;//计算左偏移量
    start = start < 1 ? 1 : start;//限定最小页码
    end = start + param.NumberButton - 1;//根据偏移计算结束按钮
    end = end > pageCount ? pageCount : end;//限定最大页码
    start = end - param.NumberButton + 1;//根据偏移计算开始页码
    start = start < 1 ? 1 : start;//限定最小页码    
}

猜你喜欢

转载自blog.csdn.net/zhang_7150/article/details/45581663