bootstrap table学习小记


step1:引入相应的js和css

<div style="text-align: left;"><span style="font-family:Times New Roman;"><link href="/static/css1/bootstrap.min.css" rel="stylesheet"></span></div><div style="text-align: left;"><span style="font-family:Times New Roman;"><link href="/static/css1/bootstrap-table.css" rel="stylesheet"></span></div><div style="text-align: left;"><span style="font-family:Times New Roman;"><link rel="stylesheet" href="//rawgit.com/vitalets/x-editable/master/dist/bootstrap3-editable/css/bootstrap-editable.css"></span></div><span style="font-family:Times New Roman;"><script src="/static/js1/bootstrap.min.js"></script>
<script src="/static/js1/bootstrap-table.js"></script>
</span><div style="text-align: left;"><span style="font-family:Times New Roman;"><script src="/static/js1/bootstrap-table-editable.js"></script></span></div><span style="font-family:Times New Roman;"><script src="//rawgit.com/vitalets/x-editable/master/dist/bootstrap3-editable/js/bootstrap-editable.js"></script>
</span><div style="text-align: left;"><span style="font-family:Times New Roman;"><script src="/static/js1/bootstrap-table-zh-CN.js"></script> </span></div>
step2:初始化表格
<span style="font-family:Times New Roman;"><table id="table"></table>
……
 $(function () {
	$('#table').bootstrapTable({
        url: '/control/userssource1/',     //请求后台的URL(*)
        method: 'post',           //请求方式(*)
        toolbar: '#toolbar',        //工具按钮用哪个容器
        striped: true,           //是否显示行间隔色
        cache: false,            //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
        pagination: true,          //是否显示分页(*)
        sortable: false,           //是否启用排序
        sortOrder: "asc",          //排序方式
        queryParams: postQueryParams,//传递参数(*)
        sidePagination: "server",      //分页方式:client客户端分页,server服务端分页(*)
        pageNumber:1,            //初始化加载第一页,默认第一页
        pageSize: 10,            //每页的记录行数(*)
        pageList: [10, 25, 50, 100],    //可供选择的每页的行数(*)
        strictSearch: true,
        clickToSelect: true,        //是否启用点击选中行
        height: 460,            //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
        uniqueId: "id",           //每一行的唯一标识,一般为主键列
        cardView: false,          //是否显示详细视图
        detailView: false,          //是否显示父子表
		search:true,               //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
		strictSearch: true,
		showColumns: true,     //是否显示所有的列
		showRefresh: true,     //是否显示刷新按钮
		minimumCountColumns: 2,    //最少允许的列数
		clickToSelect: true,    //是否启用点击选中行
		contentType:"application/x-www-form-urlencoded",//传到后台的数据格式,必须设置成这个,否则后台不能获取前台的参数(*)
		onEditableSave: function (field, row, oldValue, $el) {
//四个参数field, row, oldValue, $el分别对应着当前列的名称、当前行数据对象、更新前的值、编辑的当前单元格的jQuery对象。
				$.ajax({
                    type: "post",
					contentType:"application/x-www-form-urlencoded",
                    url: "/control/edit/",
                    //data: { strJson: JSON.stringify(row) },
					data: { "usrid": row.usrid,"realname":row.realname,"realname":row.realname,"phone":row.phone,"email":row.email,"address":row.address,"gender":row.gender },
                    success: function (data, status) {
                        if (status == "success") {
                            alert("编辑成功");
                        }
                    },
                    error: function () {
                        alert("Error");
                    },
                    complete: function () {

                    }
					});
            },
        columns: [{
          field: 'id',
          title: '序号' 
        }, {
          field: 'name',
          title: '用户名'
        }, {
          field: 'unit',
          title: '部门'
        }, {
          field: 'usrid',
          title: '用户编号'
        }, {
          field: 'admin',
          title: '用户级别'
        }, {
          field: 'unitname1',
          title: '所属铁路局'
        }, {
          field: 'unitname2',
          title: '所属电务段'
        }, {
          field: 'realname',
          title: '用户姓名',
		  editable:true
        }, {
          field: 'gender',
          title: '用户性别',
		  editable:true
        },{
          field: 'phone',
          title: '联系电话',
		  editable:true
        },{
          field: 'email',
          title: '电子邮箱',
		  editable:true
        },{
          field: 'address',
          title: '联系地址',
		  editable:true
        },]

	});
    });</span>
step3:编写表格的后台函数
<span style="font-family:Times New Roman;">def userssource1(request):
    userlist=[]
    keywords = request.POST.get('keywords','')
    username = request.session.get('uname','null')
    limit = request.POST.get('limit','')
    offset = request.POST.get('offset','')
    offset = int(offset)
    limit = int(limit)
    unitid=request.POST.get('unit','')
    userid= Users.objects.filter(name=username)[0].userid
    userlefts = Users.objects.filter(unit=unitid)[offset:offset+limit]

    length=Users.objects.filter(unit=unitid).count()
    for usr in userlefts:
        user_id=usr.id
        if len(UserUnitPrivs.objects.filter(useridx=user_id)):
            if len(UserUnitPrivs.objects.filter(useridx=user_id)[0].unitidx)==2:
                user_unitidx=UserUnitPrivs.objects.filter(useridx=user_id)[0].unitidx
                #print user_unitidx
                unitname1=Unit.objects.filter(unitidx2=user_unitidx)[0].name1
                unitname2=Unit.objects.filter(unitidx2=user_unitidx)[0].name2
                admin=get_user_privs(usr.userid)
                c ={'id':usr.id,'name':usr.name,'unit':usr.unit,'usrid':str(usr.userid),'admin':admin,'unitname1':unitname1,'unitname2':unitname2,'realname':usr.real_name,'gender':usr.gender,'phone':usr.tel_num,'email':usr.email,'address':usr.address}            
                userlist.append(c)
    data='{"total":%s,"rows":%s}' % (length,simplejson.dumps(userlist,ensure_ascii=False))
   <span style="color:#ff0000;"> #如果是服务端分页,返回的结果必须包含total、rows两个参数。漏写或错写都会导致表格无法显示数据。</span>
    return HttpResponse(data,mimetype='text/javascript;')
	  </span>
step4:编写可编辑的表格
<span style="font-family:Times New Roman;">onEditableSave: function (field, row, oldValue, $el) {
//四个参数field, row, oldValue, $el分别对应着当前列的名称、当前行数据对象、更新前的值、编辑的当前单元格的jQuery对象。
				$.ajax({
                    type: "post",
					contentType:"application/x-www-form-urlencoded",
                    url: "/control/edit/",
                    //data: { strJson: JSON.stringify(row) },
					data: { "usrid": row.usrid,"realname":row.realname,"realname":row.realname,"phone":row.phone,"email":row.email,"address":row.address,"gender":row.gender },
                    success: function (data, status) {
                        if (status == "success") {
                            alert("编辑成功");
                        }
                    },
                    error: function () {
                        alert("Error");
                    },
                    complete: function () {

                    }
					});
            },</span>
step6:可编辑表格的后台函数
<span style="font-family:Times New Roman;">def edit(request):
    s_dict={}
    msg = {}
    usrid=request.POST.get('usrid','')
    useredit = Users.objects.get(userid=usrid)
    useredit.gender=request.POST.get('gender','')
    gender=request.POST.get('gender','')
    useredit.phone=request.POST.get('phone','')
    useredit.email=request.POST.get('email','')
    useredit.address=request.POST.get('address','')
    useredit.realname = request.POST.get('realname','')
    useredit.save()
    s_dict['status']='success'
    msg['result']=s_dict
    return HttpResponse(simplejson.dumps(msg,ensure_ascii=False))</span>




  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值