热门标签 | HotTags
当前位置:  开发笔记 > 编程语言 > 正文

bootstrap表格遍历_怎么实现BootStrapTable的动态表格

怎么实现BootStrapTable的动态表格发布时间:2020-07-1015:08:52来源:亿速云阅读:263作者:L

怎么实现BootStrapTable的动态表格

发布时间:2020-07-10 15:08:52

来源:亿速云

阅读:263

作者:Leah

怎么实现BootStrapTable的动态表格?针对这个问题,这篇文章详细介绍了相对应的分析和解答,希望可以帮助更多想解决这个问题的小伙伴找到更简单易行的方法。

本篇文章将为大家介绍如何使用bootstrap table插件来实现动态表格。

在我们构建BootStrapTable(下文中均称:BsTable),其中columns参数作为表格列的内容存储,我们的需求是根据返回的数据动态的生成columns参数的内容。从而生成动态表格。

columns参数格式:类似下文columns: {

{

field: 'Id',

title: '编号',

},{

field: 'name',

title: '名称',

},{

field: 'sex',

title: '性别',

//自定义方法

formatter: function (value) {

if (value == 1) {

return '男';

} else if (value == 2) {

retuen '女';

}

}

},

}

需求:通过点击按钮发送ajax请求,针对请求返回的数据进行动态表格的构建。

按钮构造:设置点击事件

 SQL语句执行

点击事件编写:dataQuery.js (注意:这里将逐段解析,最后将贴上完整版代码)

1、获取html页面元素值

由于实现该功能的需要两个参数:SQL语句(sql) + 连接信息(connectInfo) ,所以要先从页面上获取两个元素的值:类选择器选择元素获取对应值。var sql = $('#sql').val();

var connectInfo = $('#connectInfo').val();

2、选定页面表格元素,发送ajax请求,构建BSTable

页面上的表格元素:采用beetl的标签,将重复使用的html代码用一行代码标签代替,方便使用,易于维护。

2.1 ajax请求参数配置参数含义type请求类型

url请求链接地址

contentType发送给服务器的格式

dataType收到数据的格式

data发送给服务端的数据

success请求成功时调用

error请求失败时调用

详细代码:$('#DataQueryTable').bootstrapTable({

ajax: function (request) {

$.ajax({

type: "GET",

url: Feng.ctxPath + "/dataQuery/list" + "/" + sql + "/" + connectInfo,

contentType: "application/json;charset=utf-8",

dataType: "json",

json: 'callback',

success: 见下文

error: 见下文

})

})

2.2 ajax请求成功,根据返回json数据构造动态表头

2.2.1 初始化自定义动态表头数组//定义动态表头字段数组

var dynamicHeader = [];

//向数组中填入属性

dynamicHeader.push({

field: "state",

check: true

});

2.2.2 动态表头生成//针对返回的json数据,遍历json数据的key集合

for (var i = 0; i

//获取对应索引的value值,将获取的值设置到动态表头字段中。

var property = (Object.keys(json[0]))[i];

dynamicHeader.push({

"title": property,

"field": property,

//显示是否显示隐藏

switchable: true,

//是否开启排序

sortable: true

});

}

这段代码我们可以结合浏览器F12,查看Object.keys(json[0])中的具体内容:模拟一个请求/test。

da19df01682bffb51e9c38d1b42f202d.png

2.2.3 构造表格,构造表格前要进行table销毁,否则会保留上次加载的内容$('#DataQueryTable').bootstrapTable('destroy').bootstrapTable({

//得到的json数据,会根据columns参数进行对应赋值配置

data: json,

//Bstable工具导航条

toolbar: '#toolbar',

//浏览器缓存,默认为true,设置为false避免页面刷新调用浏览器缓存

cache: false,

//是否显示行间隔色

striped: true,

//分页方式:client客户端分页,server服务端分页

sidePagination: "client",

//排序方式

sortOrder: "desc",

//每页记录行数

pageSize: 25,

//初始化加载第一页

pageNumber: 1,

//可供选择的每页行数

pageList: "[25, 50, 100, All]",

//是否显示切换按钮

showToggle: true,

//是否显示所有的列

showColumns: true,

//是否显示导出按钮(下篇文章将会提到)

showExport: true,

//导出数据类型(下篇文章将会提到)

exportDataType: "basic",

//是否显示分页

pagination: true,

//是否启用全匹配搜索,否则为模糊搜索

strictSearch: true,

//开启搜索

search: true,

//自定义所生成的动态表头放入,结合上述json数据,实现表格数据内容的构建

columns: dynamicHeader

});

},

2.3 ajax请求失败,弹窗报告错误信息,页面重加载error: function () {

alert("SQL查询错误,请输入正确的SQL语句!");

location.reload();

}

完整js代码/**

* BsTable动态表格生成

*/

DataQuery.sqlExecute = function (){

var sql = $('#sql').val();

var connectInfo = $('#connectInfo').val();

$('#DataQueryTable').bootstrapTable({

ajax: function (request) {

$.ajax({

type: "GET",

url: Feng.ctxPath + "/dataQuery/list" + "/" + sql + "/" + connectInfo,

contentType: "application/json;charset=utf-8",

dataType: "json",

json: 'callback',

success: function (json) {

var dynamicHeader = [];

dynamicHeader.push({

field: "state",

check: true

});

for (var i = 0; i

var property = (Object.keys(json[0]))[i];

//console.log(property);

dynamicHeader.push({

"title": property,

"field": property,

switchable: true,

sortable: true

});

}

//console.log(Object.keys(json[0]));

$('#DataQueryTable').bootstrapTable('destroy').bootstrapTable({

data: json,

toolbar: '#toolbar',

cache: false,

striped: true,

sidePagination: "client",

sortOrder: "desc",

pageSize: 25,

pageNumber: 1,

pageList: "[25, 50, 100, All]",

showToggle: true,

showColumns: true,

showExport: true,

exportDataType: "basic",

pagination: true,

strictSearch: true,

search: true,

columns: dynamicHeader

});

},

error: function () {

alert("SQL查询错误,请输入正确的SQL语句!");

location.reload();

}

});

}

});

};

3.测试动态表格生成结果

3.1 测试分两部分,首先获取请求所得到的json数据,模拟请求获取100条数据@RequestMapping(value = "/test")

@ResponseBody

public Object test(){

return iDataQueryService.windQuery("SELECT TOP 100 [OBJECT_ID]\n" +

" ,[S_INFO_WINDCODE]\n" +

" ,[S_CON_WINDCODE]\n" +

" ,[S_CON_INDATE]\n" +

" ,[S_CON_OUTDATE]\n" +

" ,[CUR_SIGN]\n" +

" ,[OPDATE]\n" +

" ,[OPMODE]\n" +

" FROM [WIND].[db_datareader].[AINDEXMEMBERS]");

}

3.2 查看请求所返回的json数据

7866e374dfdb657e96226ea4906b8365.png

3.3测试动态表格生成

上述的请求可以正常返回数据,那我们通过ajax请求所构建的动态BSTable呢?

请求为:SQL语句/链接信息,ajax请求返回json数据,与上述请求一致。

7a22e73a45a6531e6bd4fdbbaca7fc4e.png

查看我们的动态表格生成状况:

95af2dbaa9bbdc4a1e67d4c9f02d196b.png

宾果,至此BootStrapTable动态表格功能已实现。

关于怎么实现BootStrapTable的动态表格问题的解答就分享到这里了,希望以上内容可以对大家有一定的帮助,如果你还有很多疑惑没有解开,可以关注亿速云行业资讯频道了解更多相关知识。



推荐阅读
  • SpringMVC接收请求参数的方式总结
    本文总结了在SpringMVC开发中处理控制器参数的各种方式,包括处理使用@RequestParam注解的参数、MultipartFile类型参数和Simple类型参数的RequestParamMethodArgumentResolver,处理@RequestBody注解的参数的RequestResponseBodyMethodProcessor,以及PathVariableMapMethodArgumentResol等子类。 ... [详细]
  • 延迟注入工具(python)的SQL脚本
    本文介绍了一个延迟注入工具(python)的SQL脚本,包括使用urllib2、time、socket、threading、requests等模块实现延迟注入的方法。该工具可以通过构造特定的URL来进行注入测试,并通过延迟时间来判断注入是否成功。 ... [详细]
  • 本文介绍了使用AJAX的POST请求实现数据修改功能的方法。通过ajax-post技术,可以实现在输入某个id后,通过ajax技术调用post.jsp修改具有该id记录的姓名的值。文章还提到了AJAX的概念和作用,以及使用async参数和open()方法的注意事项。同时强调了不推荐使用async=false的情况,并解释了JavaScript等待服务器响应的机制。 ... [详细]
  • 高质量SQL书写的30条建议
    本文提供了30条关于优化SQL的建议,包括避免使用select *,使用具体字段,以及使用limit 1等。这些建议是基于实际开发经验总结出来的,旨在帮助读者优化SQL查询。 ... [详细]
  • 本文介绍了前端人员必须知道的三个问题,即前端都做哪些事、前端都需要哪些技术,以及前端的发展阶段。初级阶段包括HTML、CSS、JavaScript和jQuery的基础知识。进阶阶段涵盖了面向对象编程、响应式设计、Ajax、HTML5等新兴技术。高级阶段包括架构基础、模块化开发、预编译和前沿规范等内容。此外,还介绍了一些后端服务,如Node.js。 ... [详细]
  • 移动端常用单位——rem的使用方法和注意事项
    本文介绍了移动端常用的单位rem的使用方法和注意事项,包括px、%、em、vw、vh等其他常用单位的比较。同时还介绍了如何通过JS获取视口宽度并动态调整rem的值,以适应不同设备的屏幕大小。此外,还提到了rem目前在移动端的主流地位。 ... [详细]
  • 从零基础到精通的前台学习路线
    随着互联网的发展,前台开发工程师成为市场上非常抢手的人才。本文介绍了从零基础到精通前台开发的学习路线,包括学习HTML、CSS、JavaScript等基础知识和常用工具的使用。通过循序渐进的学习,可以掌握前台开发的基本技能,并有能力找到一份月薪8000以上的工作。 ... [详细]
  • Java实战之电影在线观看系统的实现
    本文介绍了Java实战之电影在线观看系统的实现过程。首先对项目进行了简述,然后展示了系统的效果图。接着介绍了系统的核心代码,包括后台用户管理控制器、电影管理控制器和前台电影控制器。最后对项目的环境配置和使用的技术进行了说明,包括JSP、Spring、SpringMVC、MyBatis、html、css、JavaScript、JQuery、Ajax、layui和maven等。 ... [详细]
  • WebSocket与Socket.io的理解
    WebSocketprotocol是HTML5一种新的协议。它的最大特点就是,服务器可以主动向客户端推送信息,客户端也可以主动向服务器发送信息,是真正的双向平等对话,属于服务器推送 ... [详细]
  • 本文介绍了django中视图函数的使用方法,包括如何接收Web请求并返回Web响应,以及如何处理GET请求和POST请求。同时还介绍了urls.py和views.py文件的配置方式。 ... [详细]
  • 在编写业务代码时,常常会遇到复杂的业务逻辑导致代码冗长混乱的情况。为了解决这个问题,可以利用中间件模式来简化代码逻辑。中间件模式可以帮助我们更好地设计架构和代码,提高代码质量。本文介绍了中间件模式的基本概念和用法。 ... [详细]
  • 在springmvc框架中,前台ajax调用方法,对图片批量下载,如何弹出提示保存位置选框?Controller方法 ... [详细]
  • 本文讨论了如何在codeigniter中识别来自angularjs的请求,并提供了两种方法的代码示例。作者尝试了$this->input->is_ajax_request()和自定义函数is_ajax(),但都没有成功。最后,作者展示了一个ajax请求的示例代码。 ... [详细]
  • 网络请求模块选择——axios框架的基本使用和封装
    本文介绍了选择网络请求模块axios的原因,以及axios框架的基本使用和封装方法。包括发送并发请求的演示,全局配置的设置,创建axios实例的方法,拦截器的使用,以及如何封装和请求响应劫持等内容。 ... [详细]
  • JavaWeb中读取文件资源的路径问题及解决方法
    在JavaWeb开发中,读取文件资源的路径是一个常见的问题。本文介绍了使用绝对路径和相对路径两种方法来解决这个问题,并给出了相应的代码示例。同时,还讨论了使用绝对路径的优缺点,以及如何正确使用相对路径来读取文件。通过本文的学习,读者可以掌握在JavaWeb中正确找到和读取文件资源的方法。 ... [详细]
author-avatar
王俞宇淑珮_166
这个家伙很懒,什么也没留下!
PHP1.CN | 中国最专业的PHP中文社区 | DevBox开发工具箱 | json解析格式化 |PHP资讯 | PHP教程 | 数据库技术 | 服务器技术 | 前端开发技术 | PHP框架 | 开发工具 | 在线工具
Copyright © 1998 - 2020 PHP1.CN. All Rights Reserved | 京公网安备 11010802041100号 | 京ICP备19059560号-4 | PHP1.CN 第一PHP社区 版权所有