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)    

原文地址:https://www.cnblogs.com/xuroke/p/10643494.html

时间: 2024-10-27 23:45:15

paginator对前后一页数据过滤后的选择的相关文章

&lt;&lt;ABP框架&gt;&gt; 数据过滤

文档目录 本节内容: 简介 预定义过滤 ISoftDelete 何时可用? IMustHaveTenant 何时可用? IMayHaveTenant 何时可用? 禁用过滤 关于using声明 关于多租户 启用过滤 设置过滤参数 SetTenantId 方法 自定义过滤 EntityFramework.DynamicFilters 文档 其它 ORM 简介 通常都会用到软删除模式(不把一个实体从数据库中删除,只是给它做个标志“deleted“),如果一个实体被软删除,它不应被应用意外地获取,为了提

《Entity Framework 6 Recipes》中文翻译系列 (17) -----第三章 查询之翻页、过滤和使用DateTime中的日期部分分组

翻译的初衷以及为什么选择<Entity Framework 6 Recipes>来学习,请看本系列开篇 3-12 翻页和过滤 问题 你想使用分页和过滤来创建查询. 解决方案 假设你有如图3-13所示的模型,模型中有一个Custormer实体类型. 图3-13 包含一个Customer实体类型的模型 你有一个基于过滤条件来显示客户信息的应用.你的公司有许多客户(也许数百万!),为了保证尽可能响应的用户体验,你想在每一页上只显示一定数量的客户.创建一个查询,它能过虑客户并按页返回可控数量的结果集.

MSCRM4 在过滤后的LOOKUP框中实现查找

在MSCRM中让Lookup根据一定的条件实现过滤功能, 这个需求很常见, 在我接触的诸多项目中似乎都需要有这个功能. 但非常遗憾是, MSCRM 的SDK并没有提供实现这个功能的方法. 不过我们应该还是感到庆幸, 据说, 微软CRM产品组有透露下面这样的方法: 场景: 实体: 实体名 架构名 客户 account 联系人 contact 客户: 字段名 架构名 类型 关联实体 上级单位 parentaccountid lookup 客户 主要联系人 primarycontactid looku

C# 用Linq实现DataTable实现重复数据过滤

未过滤前: 过滤后(仅会过滤掉完全一样的数据): 代码如下: DataTable dt = this.JsonToDataTable("[{\"Code\":\"SortId\",\"Name\":\"SortId\"},{\"Code\":\"SortCode\",\"Name\":\"编号\"},{\"Code\"

EasyUI 1.4.4 DataGrid(大数据量) bufferview滚动时不加载下一页数据解决方案

在使用Easyui DataGrid 过程中,发现若单页数据量超过300,IE浏览器加载速度很慢.也通过网上找寻了很多解决方案,最典型的就是去掉datagrid的自动列宽以及自动行高判断. 1.解决自动列宽:  设定列宽度可解决. 2.解决自动行高 : 注释掉下面的代码. 1 function _3e(_44,_45){ 2 //for(var i=0;i<_45.length;i++){ 3 ////var tr1=$(_44[i]); 4 ////var tr2=$(_45[i]); 5 /

PatentTips - 在物联网中进行数据过滤的方法和装置

背景技术 [0001] 本发明涉及物联网,特别涉及在物联网进行数据过滤的方法和装置. [0002] 物联网是新一代信息技术的重要组成部分,特指物物相连的网络.具体地,物联网是指通过各种信息传感设备,如传感器.射频识别(RFID)技术.全球定位系统.红外感应器.激光扫描器.气体感应器等各种装置与技术,实时采集任何需要监控.连接.互动的物体或过程,采集其声.光.热.电.力学.化学.生物.位置等各种需要的信息,与互联网结合形成的一个巨大网络.物联网目的是实现物与物.物与人.所有的物品与网络的连接,以方

R实现大文本文件数据过滤的方法

使用R语言过滤文件数据是很普遍的操作,但有时我们会遇到比较大的文件,这类文件无法全部读入内存处理,需要采用分批读取.分批过滤.拼合结果的办法来解决.下面用一个例子来说明R实现大文件数据过滤的方法. 有个1G的文件sales.txt,存储着大量订单记录,请过滤出AMOUNT字段值在2000和3000之间的记录.该文件的列分割符为"\t",前几行数据如下:     R语言解决方案: con <- file("E:\\sales.txt", "r"

关于怎样获取DevExpress GridView过滤后或排序后的数据集问题(转)

GridView用自带的过滤功能过滤数据后,想要获取过滤后的数据集,有两种方式: 一.笨办法就是循环遍历GridView,根据gridView.GetRow()或者gridView.GetDataRow()(该方法返回DataRow类型,使用于数据源是DataTable)去获取指定handle对应的数据对象. 1.若GridControl绑定的数据源是List类型,可以调用以下方法 /// <summary> /// 获取GridView过滤或排序后的数据集 /// </summary&

Android - ListView 滑动载入下页数据 Scroll设定

Android - ListView 下滑载入新数据 遇到问题,过去的下滑载入功能很差,不知道原因. 试了半天终于试出来了. 觉得这个方法比较符合使用者体验的感觉, 不会感觉上视觉有跳动的感觉,而是很直直的载入,很顺. 以下是我设定的onScrollListener private OnScrollListener scrollListener = new OnScrollListener() { @Override public void onScroll(AbsListView view,