美文网首页
layui-table的相关问题

layui-table的相关问题

作者: JerryLoveCoding | 来源:发表于2018-12-14 11:35 被阅读0次

    layui--table格式:

    这里介绍一个非demo的写法:

    1.在html中直接写table,而不是在js中渲染。这里注意将lay-data设置一下,绑定一个id,方便js中重载绑定这个table

           lay-data="{page:true, id:'mainList'}"

           lay-filter="mainList" lay-size="sm">

            <th lay-data="{checkbox:true, fixed: true}">

            <th lay-data="{field:'name',sort: true,width:250}">项目名称

            <th lay-data="{field:'establish_dept',sort: true,width:200}">发布部门

            <th lay-data="{field:'establish_time',width:150}">发布时间

            <th lay-data="{field:'startdate',width:150}">开始时间

            <th lay-data="{field:'enddate',width:150}">结束时间

            <th lay-data="{field:'project_level',width:10}">项目级别

    </table>

    然后在js中重载table:

    var config = {};//table的参数,如搜索key,点击tree的id

    var mainList =function (options) {//前面注意要定义layui.table,在layui.use里也记得添加table

    if (options != undefined) {

    $.extend(config, options);

    }

    table.reload('mainList',

    {

    elem:"#mainList",

    url: urls,

    where: config,

    response:{//response定义返回json数据的状态码,返回信息,返回数据行数和数据流

        statusName:"code",//数据状态的字段名称,默认“code”

        statusCode:0,//成功的状态码

        msgName:"msg",//状态信息名称,默认msg

        countName:"count",//数据总数字段名称,就是table显示多少行,默认count

        dataName:"data",},//数据列表

    });

    };

    mainList();

    然后,在后端要返回一个官方定义的table返回数据。不符合table的数据格式要求就会报错,所以要对后端object.all的数据进行处理:

    def inquiry(request):

    if request.method =="GET":

    projects = EstablishProject.objects.all()//这里只是一个QuerrySet数据格式

    data = []#table这里需要的data是一个列表,每一行数据是一个元素,每个元素又是个字典

    detail_data = {}#单行数据用detail_data表示,然后通过for循环不断更新detail_data,存入data列表中

    count =0

    for detailin projects:

    detail_data = dict()#对每一次的for循环,都先清空detail_data,不然数据可能无法进行更新

    detail_data["id"] = detail.id

    detail_data["name"] = detail.name

    detail_data["startdate"] = str(detail.startdate)

    detail_data["enddate"] = str(detail.enddate)

    detail_data["establish_dept"] = detail.establish_dept

    detail_data["establish_time"] = str(detail.establish_time)

    detail_data["project_level"] = detail.project_level

    print(detail_data)

    data.append(detail_data)

    count = count +1

          postmsg = {"code":0, "msg":"", "count": count, "data": data}

    print(postmsg)

    return HttpResponse(json.dumps(postmsg), content_type="application/json")

    layui的table问题:

    在Django中,使用demo中的写法,即通过把后端转化为json数据然后异步动态加载数据。这里相较于在html中写一个内嵌的python语句进行一个for循环get到数据来讲要高级一点,而且后面再做table重载也更加方便,但是我们在做的时候,发现报错:返回的数据状态异常:paramerror

    然后我看了很多文章,这里将所有可能出现这个报错的原因都总结一下。

    1.后端返回的数据不是json格式的,layui.table需要json格式的数据,不然只能做成同步提交的静态页面

    2.后端返回的数据不是按照layui的table数据流要求,详见:官方定义的table返回数据

    3.数据不能显示,print打印不出数据:原因可能是直接用object.all()返回的东西放到data[]里,这肯定不行的,因为querryset格式这里是列表是不认的(因为我print列表没有数据)。需要写个循环通过字典来获取所有数据。

    相关文章

      网友评论

          本文标题:layui-table的相关问题

          本文链接:https://www.haomeiwen.com/subject/pwgwhqtx.html