Django实现select分页跳转
时间:2010-06-20 来源:hkebao
Django实现select分页跳转
时间:2010-6-20
实现思路:使用了过滤器来处理的。
步骤一:编写过滤器代码如下
#coding:utf-8
from django import template
from django.shortcuts import render_to_response
from django.template import Context
from django.template.loader import get_template
from django.template import Template
register = template.Library()
"""
@curpage 表示当前页面是第几页
@value 表示一共有多少页
"""
@register.filter(name='pages')
def pages(curpage,value):
pageout = ""
value = int(value) + 1
pageout = "直接跳转至<select name=page onChange=TOpg(this.value,'"+str(value)+"')>"
for i in range(1,value):
if curpage == i:
pageout = pageout + "<option selected value='"+str(i)+"'>" + str(i) + "</option>"
else:
pageout = pageout + "<option value='"+str(i)+"'>" + str(i) + "</option>"
pageout = pageout + "</select>页"
t = Template(pageout)
c = Context()
html = t.render(c)
return html
register.filter('pages', pages)
说明:以上的过滤器代码是独立即不依托于任何模块。
步骤二:模板层实现
<script language="JavaScript" type="text/JavaScript">
// Rpage 表示的是当前要跳转的第几页 RPgCounter表示一共有多少页
function TOpg(Rpage,RPgCounter)
{
stURL="";
if (Rpage>=1&&Rpage<RPgCounter){
stURL=stURL+"?page="+Rpage;
window.location.href= stURL;
}
}
</script>
步骤三:引用过滤器
{{contacts.number|pages:contacts.paginator.num_pages}}
其中第一个参数contacts.number 表示的是当前页数。
contacts.paginator.num_pages 表示总的页数