django + python + easyui datagrid

前台:

<table id="dg"></table>

$(‘#dg‘).datagrid({
            url:‘/url/‘

     columns:[[
                {field:‘Name‘,title:‘name‘,width:100},
                {field:‘User‘,title:‘user‘,width:100}

    ]]

})

后台:主要有3个参数,page(页数)、rows(每页行数)、total(总行数)

思路:

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

def userlist(request):
    page = request.GET[‘page‘]
    rows = request.GET[‘rows‘]
    User_list = Userdb.objects.all().order_by(‘-id‘)
    alist=[]
    for i in User_list.values():
        alist.append(i)
    tl = len(alist)
    easy_list = []
    rs = rows
    a = int(page)-1
    b = int(rs)
    total = json.dumps(tl)
    if (a==0):
        a = 1
        if(b>len(alist)):
            ealist = {‘rows‘:alist,‘total‘:total}
        else:
            for s in range(a*b):
                easy_list.append(alist[s])
            ealist = {‘rows‘:easy_list,‘total‘:total}
    else:
        for s in range(a*b):
            print len(alist)
            del alist[0]
            print alist
        if(len(alist)<b):
            ealist = {‘rows‘:alist,‘total‘:total}
        else:
            for i in range(a*b):
                easy_list.append(alist[i])
            ealist = {‘rows‘:easy_list,‘total‘:total}
    easylist = json.dumps(ealist,cls=CJsonEncoder)
    return HttpResponse(easylist)

//如果数据里面有时间的话,使用json.dumps()会出错。下面这个函数就是处理这个问题

class CJsonEncoder(json.JSONEncoder):
    def default(self, obj):
        try:
            if isinstance(obj, datetime):
                 return obj.struct_time(‘%Y-%m-%d %H:%M:%S‘)
            elif isinstance(obj, date):
                da = str(obj.strftime(‘%Y-%m-%d‘))
                #return obj.strftime(‘%Y-%m-%d‘)
                return da
            else:
                return json.JSONEncoder.default(self, obj)
        except Exception,e:
            print e

时间: 2024-12-29 12:09:45

django + python + easyui datagrid的相关文章

JQuery EasyUI 学习——Struts2与EasyUI DataGrid数据表格结合使用显示数据库数据

因为EasyUI DataGrid只要取出后台传过来的一定格式的JSON数据,就可以在前台页面数据表格中,以一定形式显示数据库中的数据.此处,我们使用Struts2框架整合DataGrid,实现数据的显示. 一.页面内容 为了在页面中显示数据库中字段内容,需要定义一个table,通过EasyUI内部设计,自动显示数据,如下: <%@ page language="java" import="java.util.*" pageEncoding="UTF

初识 easyui datagrid

首先应该下载好easyui datagrid所用的各种js 和css 这个可以到官网上去下载. 首先要引入datagrid所引入的js和css. <script src="js/jquery.min.js"></script><script src="js/jquery.easyui.min.js"></script><link rel="stylesheet" type="text

easyui datagrid 批量编辑和提交

前台主要代码: <script type="text/javascript"> $(function() { var $dg = $("#dg"); $dg.datagrid({ url : "servlet/list", width : 700, height : 250, columns : [ [ { field : 'code', title : 'Code', width : 100, editor : "vali

jquery easyui datagrid 排序列

点击排序列,将获取参数有:page=1&rows=10&sort=UserName&order=desc c#后台获取sort跟order参数 string sortColumn = Request.Params["sort"].ToString(); string order = Request.Params["order"].ToString(); jquery easyui datagrid 排序列,布布扣,bubuko.com

easyui datagrid行合并

easyui datagrid行合并 合并方法 /** * EasyUI DataGrid根据字段动态合并单元格 * 参数 tableID 要合并table的id * 参数 colList 要合并的列,用逗号分隔(例如:"name,department,office"); */ function mergeCellsByField(tableID, colList) { var ColArray = colList.split(","); var tTable =

EasyUI DataGrid 编辑单元格

之前文章 EasyUI DataGrid可编辑单元格实现可编辑单元格,如果有多列都需要可编辑 当点击一个单元格 则此整行都会进行编辑 如下图: 现改为单击某个单元格只对此单元格进行可编辑 <TABLE>标记添加 onClickCell <table id="dg" class="easyui-datagrid" data-options="onClickCell: onClickCell"> 需要进行编辑的列上添加 edi

easyUI datagrid笔记

easyUI datagrid 简单使用与注意细节 背景: 业余爱好,使用了一下easyUI的搜索框与数据表格,并把两者整合起来进行使用. 使用前提(引入需要的js and css): <link rel="stylesheet" type="text/css" href="./css/easyui.css"> <link rel="stylesheet" type="text/css"

easyui datagrid导出excel

[第十四篇]easyui datagrid导出excel <a class="btn btn-app" onclick="exportExcel()"><i class="fa fa-edit"></i>导出Excel</a> 贴下面的代码之前,我想说一下 我的数据是主外键关系,有多张表关联,所以在做数据的时候,发现很多问题,读取的时候,它会自动读取所有的数据. 当然这不能满足我导出之后的要求,我只

动态设置easyui datagrid URL

动态设置easyui datagrid URL$('#tt').datagrid({url:'website/jsp/servlet',        queryParams:{method:'xx', Id:IDValue }        });