paginator对前后一页数据过滤后的选择

Posted xuroke

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了paginator对前后一页数据过滤后的选择相关的知识,希望对你有一定的参考价值。

@register.simple_tag
def pre_ele(query_sets, filter_condtions,previous_orderby, search_text):
    c_tag =‘‘
    filters = ‘‘
    for k, v in filter_condtions.items():
        filters += "&%s=%s" % (k, v)

    if query_sets.has_previous():
        page_n = query_sets.previous_page_number()
        # page_n是指针指向点击位置的前一个,因此判断时我们认为是大于1,其实还要往前推一个,即减去1,所以此处>0
        if page_n > 0:
            c_tag += ‘‘‘<li><a href="?page=1%s&o=%s&_q=%s">首页</a>‘‘‘ % (filters, previous_orderby, search_text)
            c_tag += ‘‘‘<li><a href="?page=%s%s&o=%s&_q=%s">上一页</a>‘‘‘ % (page_n, filters, previous_orderby, search_text)
    e_tag = </li>
    c_tag += e_tag
    return mark_safe(c_tag)
@register.simple_tag
def next_ele(query_sets, filter_condtions,previous_orderby, search_text):
    c_tag =‘‘
    filters = ‘‘
    for k, v in filter_condtions.items():
        filters += "&%s=%s" % (k, v)
    if query_sets.has_next():
        page_n = query_sets.next_page_number()
        # page_n是指针指向点击位置的后一个
        pg_n = query_sets.paginator.num_pages
        #因为是判断后一页,要用到总页数减去pg_n指向的位置
        #在这里的-1,代表指针跳出总页数的最后一个位置,总页数和它相减总是-1,这样才是最后的一页
        if pg_n - page_n > -1:
    
            c_tag += ‘‘‘<li><a href="?page=%s%s&o=%s&_q=%s">下一页</a>‘‘‘ % (page_n, filters, previous_orderby, search_text)
            c_tag += ‘‘‘<li><a href="?page=%s%s&o=%s&_q=%s">尾页</a>‘‘‘ % (pg_n, filters, previous_orderby, search_text)
    e_tag = </li>
    c_tag += e_tag
    return mark_safe(c_tag)    

 

以上是关于paginator对前后一页数据过滤后的选择的主要内容,如果未能解决你的问题,请参考以下文章

ElementUI分页Pagination自动到第一页

如何根据前一页选择过滤 Telerik Grid

下一页单击分页后Laravel过滤器重置

vue框架,使用pagination组件进行分页时 分页不在第一页的时候保存了 筛选记录,然后f5刷新又到第一页了,到了onCurrentChange改变分页的函数改变了

特征工程之特征选择----方差过滤

laravel分页功能