bootstrap的table属性已经很熟悉了,最近遇到一个问题,犹豫每个列表加载的数据需求不同,所以需要动态的更换表头。 网上有很多加载表格数据的例子,但是却没有找到如何动态加载表格,再加在数据。 虽然可以一个表格加载一种数据,但是本着学习的态度尝试了下这种方式,结果发现是可以执行的。分享下思路和实现过程,以备日后使用。
思路:
1、写接口,查询出要展示的列。注意接口中必须要有字段中文名称(columns属性的title值),字段的英文名称(columns的field字段),特别注意filed字段应该与最后查询出的列表中返回的json数据中的key保持一致,不然取不到值。
2、ajax请求刚才的接口,查询出columns,并给table的columns赋值。
3、加载表格展示。
大致代码如下:
表格:
var peopleOptions; // 人口列表加载 function tableItem() { peopleOptions = { method : "POST", // 使用get请求到服务器获取数据 url : path + "/api/information/people/getList", // 获取数据的地址 contentType : "application/x-www-form-urlencoded",// 重要否则POST会报错 striped : false, // 表格显示条纹 pagination : true, // 启动分页 pageSize : 10, // 每页显示的记录数 pageNumber : 1, // 当前第几页 pageList : [ 10, 20, 50 ], // 记录数可选列表 uniqueId : "id", showColumns : false, // 显示下拉框勾选要显示的列 showToggle : false, // 显示 切换试图(table/card)按钮 clickToSelect : false, // 点击可选 singleSelect : false, // 禁止多选 maintainSelected : true, // 在点击分页按钮或搜索按钮时,将记住checkbox的选择项 sortable : true, // 禁止所有列的排序 sidePagination : "server", // 表示服务端请求 后台分页 toolbar : "#toolbar",// 指明自定义的toolbar queryParamsType : "undefined", queryParams : function queryParams(params) { var param = { pageNumber : params.pageNumber, pageSize : params.pageSize, orgId : ztreeId, nodeId : ztreeId, citizenName : $("#fullname").val().trim(), sex : $("#sex").val(), age : $("#age").val().trim(), identityCode : $("#idCard").val().trim(), cellPhone : $("#isMobile").val().trim(), adress : $("#adress").val().trim(), }; return param; }, onLoadSuccess : function() { // 加载成功时执行 responseHandler : function(res) { // 格式化数据 console.log(res); if (res.data.total != undefined) tmp = { total : res.data.total, rows : res.data.rows }; if (res.data.total == undefined) tmp = { total : res.data.length, rows : res.data }; return tmp; }, columns : [ { checkbox : true, title : '全选', valign : 'middle' }, { title : '序号', field : 'number', width : '40px', align : 'center', valign : 'middle', formatter : indexFormatter }, { title : '姓名', field : 'citizenName', align : 'center', valign : 'middle', }, { title : '年龄', field : 'age', align : 'center', width : 28, valign : 'middle', formatter : ageFormatter }, { title : '性别', field : 'sex', width : 28, align : 'center', valign : 'middle', },{ title : '身份证号', field : 'identityCode', align : 'center', valign : 'middle', }, { title : '民族', field : 'nation', align : 'center', valign : 'middle', } ] } } $table = $("#table").bootstrapTable(peopleOptions); };
动态获取列:
function getColumns() { // 加载动态表格 $.ajax({ url : path + "api/information/people/getLableColumn" + ztreeId, type : 'get', dataType : "json", async : false, success : function(returnValue) { // 未查询到相应的列,展示默认列 if (returnValue.retCode == "0") { //没查到列的时候把之前的列再给它 myColumns = $table.bootstrapTable('getOptions').columns[0]; } else { // 异步获取要动态生成的列 var arr = returnValue.data; $.each(arr, function(i, item) { myColumns.push({ "field" : item.labelColumnCode, "title" : item.labelColumnName, "hide" : true, "align" : 'center', "valign" : 'middle' }); }); } console.log(myColumns); return myColumns; } }); }
刷新列表:
//点击左侧树后重新加载表格 $table.bootstrapTable( "refreshOptions", { url : path + "/api/peopledataInfo/getPeopleInfoList", // 获取数据的地址 columns : myColumns, } ); }
需要注意的是bootstrap的table提供了两个刷新的方法,一个refresh,一个refreshOptions,前者只是刷新当前表格,后者会将表格中的组件全部更新一遍,因为我们替换了url和columns,所以需要调用后者。
展示效果:
动态加载表头其实就是类似Echart中动态加载数据的感觉一样,只是改变整个Option中的相关属性即可。
优点:代码量会大大减少,当我们要加载不同数据且样式一样的表格的时候可以采用这样的方式。
缺点:样式很难维护。前端人员不好定位bug,所以很难修改相应的样式bug。
依据项目实际情况,择优使用吧。
以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持。
免责声明:本站资源来自互联网收集,仅供用于学习和交流,请遵循相关法律法规,本站一切资源不代表本站立场,如有侵权、后门、不妥请联系本站删除!
稳了!魔兽国服回归的3条重磅消息!官宣时间再确认!
昨天有一位朋友在大神群里分享,自己亚服账号被封号之后居然弹出了国服的封号信息对话框。
这里面让他访问的是一个国服的战网网址,com.cn和后面的zh都非常明白地表明这就是国服战网。
而他在复制这个网址并且进行登录之后,确实是网易的网址,也就是我们熟悉的停服之后国服发布的暴雪游戏产品运营到期开放退款的说明。这是一件比较奇怪的事情,因为以前都没有出现这样的情况,现在突然提示跳转到国服战网的网址,是不是说明了简体中文客户端已经开始进行更新了呢?
更新日志
- 凤飞飞《我们的主题曲》飞跃制作[正版原抓WAV+CUE]
- 刘嘉亮《亮情歌2》[WAV+CUE][1G]
- 红馆40·谭咏麟《歌者恋歌浓情30年演唱会》3CD[低速原抓WAV+CUE][1.8G]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[320K/MP3][193.25MB]
- 【轻音乐】曼托凡尼乐团《精选辑》2CD.1998[FLAC+CUE整轨]
- 邝美云《心中有爱》1989年香港DMIJP版1MTO东芝首版[WAV+CUE]
- 群星《情叹-发烧女声DSD》天籁女声发烧碟[WAV+CUE]
- 刘纬武《睡眠宝宝竖琴童谣 吉卜力工作室 白噪音安抚》[FLAC/分轨][748.03MB]
- 理想混蛋《Origin Sessions》[320K/MP3][37.47MB]
- 公馆青少年《我其实一点都不酷》[320K/MP3][78.78MB]
- 群星《情叹-发烧男声DSD》最值得珍藏的完美男声[WAV+CUE]
- 群星《国韵飘香·贵妃醉酒HQCD黑胶王》2CD[WAV]
- 卫兰《DAUGHTER》【低速原抓WAV+CUE】
- 公馆青少年《我其实一点都不酷》[FLAC/分轨][398.22MB]
- ZWEI《迟暮的花 (Explicit)》[320K/MP3][57.16MB]