相关网址:https://www.cnblogs.com/Mohf/p/4121953.html
思路:
1、datagrid会自己传page 跟rows过来,直接在后台获取
2、得到page跟rows后把它们类型转为int、从数据库取出数据把总行数赋给total,然后把数据放到列表里面
3、判断page是不是第一页:
3.1、如果是第一页:判断有多少行(rows),取rows行数据
3.2、如果不是第一页:从列表删除page-1条数据得到剩余的数据,然后再做第3.1步
4、把total跟得到的数据拼起来:ealist = {'rows':alist,'total':total}
5、把ealist转成json格式数据return回去, ok
实现:
<table id="dg" class="easyui-datagrid" title="作者列表" style="width:100%;height:420px"
data-options="pagination:true,url:'/getAuthor/',method:'get',toolbar:'#tb',">
</table>
def getAuthor(request):
if request.method == "GET":
page = int(request.GET.get('page',0))-1
rows = int(request.GET.get('rows',0))
list = models.Author.objects.all().order_by("-id")
allList = []
for li in list:
allList.append({
"id": li.id,
"head_img": str(li.head_img),
"name": li.name,
"email": li.email,
"sex": li.sex,
"depart": li.depart_id,
"phone": li.phone,
"account": li.account,
"publish_date": json.loads(json.dumps(li.publish_date, cls=DateEncoder)),
})
total = len(allList)
if page < 0 or rows == 0:
json_data_list = allList
else:
p = Datagrid()
json_data_list = p.page(page, rows, total, allList)
return HttpResponse(json.dumps(json_data_list), content_type='application/json; charset=utf-8')
if request.method == "POST":
page = int(request.POST.get('page', '')) - 1