Django - Ajax分页
2024-08-27 19:21:50
目前总结了2种方法:
1. Ajax 分页
尼玛各种google,stackoverflow,搞了好久才总结出这个,之前使用Pagination tag loading的方式不好用,并且不能进行ajax提交请求的页面无刷新的方式去分页
1.view.py
from django.core.paginator import Paginator, EmptyPage, PageNotAnInteger
from django.shortcuts import render
def xxx(request):
rows = cursor.fetchall()
paginator = Paginator(rows, 15) //how many items per page
page = request.POST.get('page')
try:
rows = paginator.page(page)
except PageNotAnInteger:
# If page is not an integer, deliver first page.
rows = paginator.page(1)
except EmptyPage:
# If page is out of range (e.g. 9999), deliver last page of results.
rows = paginator.page(paginator.num_pages)
return render(request,'ajax_page.html', {'rows': rows})
2. ajax_page.html
<div class="pagination">
<span class="step-links">
{% if rows.has_previous %}
<a id='pre' href="#">previous</a>
{% endif %}
<span class="current">
Page {{ rows.number }} of {{ rows.paginator.num_pages }}.
</span>
{% if rows.has_next %}
<a id="next" href="#" >next</a>
{% endif %}
</span>
</div>
3. JS -Ajax 部分
{%block js%}
<script type="text/javascript">
$('.step-links #next').click(function(){
{% if rows.has_next %}
page={{ rows.next_page_number }};
{% endif %}
$.ajax({type:"POST",url:"/submitjobs/",data:{"page":page}, success:function(data){
$("#jobs_table").html(data);
}
})
});
$('.step-links #pre').click(function(){
{% if rows.has_previous %}
page={{ rows.previous_page_number }};
{% endif %}
$.ajax({type:"POST",url:"/submitjobs/",data:{page":page}, success:function(data){
$("#jobs_table").html(data);
}
})
});
</script>
{%endblock%}
2. Datatable - plugin for Jquery (http://datatables.net/)
这种方法quick and dirty 唯一缺点就是不适用海量数据一般几百来页也是可以的,只需在js中调用dataTable方法就好。
数据填充已经在方法1中使用render.request将数据载入table.
{%block js%}
<script type="text/javascript">
$('#job_table').dataTable();
</script>
{%endblock%}
最新文章
- TFS 2015(Visual Studio Team Foundation Server)的下载和安装
- web初学之重定向与请求转发
- OD使用教程12
- react6 事件传递参数
- java socket client
- SIGGRAPH
- HDU1257 最小拦截系统 【贪婪】
- Oracle生成查询包括对应于所有数据表记录语句中指定的字段名
- Python 中的 if __name__ == &#39;__main__&#39; 该如何理解
- SAM failed to write changes to the database 问题处理
- python开发之虚拟环境管理:virtualenv、virtualenvwrapper、pycharm
- SRCNN
- asp.net core环境变量详解
- python 删除文件夹
- shell sort命令
- CentOS6安装各种大数据软件 第十章:Spark集群安装和部署
- SLAM Course - WS13/14 by Cyrill Stachniss (1) 课程资源汇总
- 【BZOJ】1096 [ZJOI2007]仓库建设
- Django进阶Model篇007 - 聚集查询和分组查询
- 九、 Java程序初始化的顺序(二)
热门文章
- kubernetes 1.7.2 安装 记录过程
- Log图文详解(Log.v,Log.d,Log.i,Log.w,Log.e)
- Python基础-os和sys模块
- Python Variable Scope
- rails generator
- PAT 天梯赛 L1-029. 是不是太胖了 【水】
- 对JAVA的集合的理解
- 方法——<;37>;
- CSS 命名里面有大学问
- IMX6Q RTC驱动分析