两种表格工具,今天都用到了,一种是我前几篇写到过的jqgrid,(传送门)另一个就是bootstrap-table了。用过之后会发现,两种表格的方式大同小异,但是为什么这次要换成bootstrap-table呢,是因为我们在写树形结构,由于jqgrid 的树形结构的数据结构和字段要求的太多的,导致了后台再提供数据的时候需要格式化(实话实说,这个要求的有点多),如果有兴趣,大家可以看我这篇博客(传送门)。所以,我们决定使用bootstrap-table的树形结构来结果这个问题。引入css和js文件是第一步,这里我放cdn地址,如果失效了,大家请自行下载

 <link href="https://cdn.bootcss.com/bootstrap/3.3.7/css/bootstrap.min.css" rel="stylesheet">
<link href="https://cdn.bootcss.com/bootstrap-table/1.11.1/bootstrap-table.min.css" rel="stylesheet">
<link href="https://cdn.bootcss.com/jquery-treegrid/0.2.0/css/jquery.treegrid.min.css" rel="stylesheet"> //树形结构的文件,如果没有用到,请删除
<script src="https://cdn.bootcss.com/jquery/3.1.1/jquery.min.js"></script>
<script src="https://cdn.bootcss.com/bootstrap-table/1.12.1/bootstrap-table.min.js"></script>
<script src="https://cdn.bootcss.com/bootstrap-table/1.12.0/extensions/treegrid/bootstrap-table-treegrid.js"></script> //树形结构的文件,如果没有用到,请删除
<script src="https://cdn.bootcss.com/jquery-treegrid/0.2.0/js/jquery.treegrid.min.js"></script> //树形结构的文件,如果没有用到,请删除

  首先是利用bootstrap-table来加载数据。然后只需要设置几个基本的“idField”,“treeShowField”,“parentIdField”字段就可以得到树形接口,非常的简单,不多说,直接放代码:

  $table = $("一个table标签的id");

         $table.bootstrapTable({
url: base_url + '/Gamecharm/show.php',//接口地址
//url: "__ROOT__/public/js/data.json",//我本地测试的接口地址
method:"get",//接口地址获取的方式,post或者get
//data:data,//如果是我们自己用ajax获取数据,或者说数据就是本地的,需要放在这里
idField: 'id',//父元素的标识,这里我们使用的是id
pageNumber:1,//默认第几页
responseHandler:function(res) { //这个其实是和jqgrid中的jsonReader ,就是说bootstrap中和jqgrid一样,都有默认的字段,如果后台给我们的不是默认的,所以就需要我们自己更改 如果还是不明白,请看链接 return {
"data": res.datas //主数据
//"total": res.result.total
};
},
queryParams:{ //传参这个和jqgrid中的postData是一样的,就是接口请求的参数
"creatTime":getdate()
},
columns: [ //下面是格式化数据
{
field: 'id', //需要的字段id
title: '日期', //列名称
},
{
field: 'h',
title: '商户名',
},
{
field: 'game_id',
title: '游戏名',
formatter:function(cellvalue){
var str = "";
for(var i =0;i<game_type_arr.length;i++){
if(cellvalue == game_type_arr[i]["game_id"]){
str = game_type_arr[i]["game_name"];
return str;
}
}
return str;
}
},
{
field: 'h',
title: '玩家数',
},
{
field: 'rounds',
title: '游戏局数',
},
{
field: 'bets',
title: '投注金额',
formatter:function(cellvalue){
return (cellvalue/10000).toFixed(4);
}
},
{
field: 'effects',
title: '有效投注量',
formatter:function(cellvalue){
return (cellvalue/10000).toFixed(4);
}
},
{
field: 'total_revenue',
title: '中奖金额',
formatter:function(cellvalue){
return (cellvalue/10000).toFixed(4);
}
},
{
field: 'fees',
title: '房费',
formatter:function(cellvalue){
return (cellvalue/10000).toFixed(4);
}
},
{
field: 'total_win_agent',
title: '商户盈亏',
formatter:function(cellvalue){
return (cellvalue/10000).toFixed(4);
}
},
{
field: 'rtp',
title: 'RTP(%)',
formatter:function(cellvalue,rowObject){ //自己格式化数据;这里需要注意的是,他的参数顺序和jqgrid不太一样,需要注意
var str ="";
if(rowObject.effects){
str = ((rowObject.total_win_agent / rowObject.effects)*100).toFixed(2) + "%";
}else{
str = "-";
}
return str;
}
}
],
//在哪一列展开树形
treeShowField: 'id',//属性结构中三角的位置
//指定父id列
parentIdField: "parent",//根据这个字段来确定哪个是父元素
onResetView: function(data) {
//console.log('load');
$table.treegrid({
initialState: 'collapsed',// 所有节点都折叠
// initialState: 'expanded',// 所有节点都展开,默认展开
treeColumn: 0,//默认展开几层,0代表全部不展开
// expanderExpandedClass: 'glyphicon glyphicon-minus', //图标样式
// expanderCollapsedClass: 'glyphicon glyphicon-plus',
onChange: function() {
$table.bootstrapTable('resetWidth');
}
});
},

  到这里就可以正确的加载第一次的数据了。但是如果我们有自己的搜索条件,需要改变queryParams中的值就可以了,请看下面的代码:

  //点击搜索按钮
function search_bth(){
var user_number = $("#user_number").val();//商户号
var player_id = $("#player_id").val();//玩家账号
var record_id = $("#record_id").val();//游记录ID
var game_id = $("#game_id").val();//游戏局ID
var game_type = $("#game_type").val();//游戏类型
var creat_time = $("#start_time").val();//游戏时间
var filter_data = {}
//去掉空格校验
if($.trim(user_number)){
filter_data.agentId = $.trim(user_number);
}
if($.trim(player_id)){
filter_data.account = $.trim(player_id);
}
if($.trim(record_id)){
filter_data.orderId = $.trim(record_id);
}
if($.trim(game_id)){
filter_data.roundId = $.trim(game_id);
}
if($.trim(game_type)){
filter_data.gameId = $.trim(game_type);
}
if($.trim(creat_time)){
filter_data.creatTime = $.trim(creat_time);
} console.log(filter_data);
//debugger;
//$("#table_list_1").bootstrapTable('destroy');
// $('#table_list_1').bootstrapTable({
// queryParams:filter_data,
// url: "__ROOT__/public/js/data.json",
// });
$('#table_list_1').bootstrapTable('refresh',{query:filter_data})//等到我们需要传输的参数,直接刷新页面
}

  最重要的就是37行的代码,我们用query就可以重新发送请求,然后获取到最新的数据了!

bootstrap-table 常用总结-1的更多相关文章

  1. JS组件系列——表格组件神器:bootstrap table(三:终结篇,最后的干货福利)

    前言:前面介绍了两篇关于bootstrap table的基础用法,这章我们继续来看看它比较常用的一些功能,来个终结篇吧,毛爷爷告诉我们做事要有始有终~~bootstrap table这东西要想所有功能 ...

  2. 表格组件神器:bootstrap table详细使用指南

    1.bootstrap-table简介 1.1.bootstrap table简介及特征: Bootstrap table是国人开发的一款基于 Bootstrap 的 jQuery 表格插件,通过简单 ...

  3. ABP+AdminLTE+Bootstrap Table权限管理系统第五节--WBEAPI及SwaggerUI

    一,Web API ABP的动态WebApi实现了直接对服务层的调用(其实病没有跨过ApiController,只是将ApiController公共化,对于这一点的处理类似于MVC,对服务端的 调用没 ...

  4. ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十二节--小结,Bootstrap Table之角色管理

    返回总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期 很多人说ABP不适合高并发大型,有一定的道理,但是我觉得还是可以的,就看架构师的能力了,哈哈,我之前公司就是ABP ...

  5. ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十七节--Quartz与ABP框架Abp.Quartz及扩展

    ABP+AdminLTE+Bootstrap Table权限管理系统一期 Github:https://github.com/Jimmey-Jiang/ABP-ASP.NET-Boilerplate- ...

  6. bootstrap table使用参考

    https://www.cnblogs.com/landeanfen/p/5821192.html  转载 阅读目录 一.x-editable组件介绍 二.bootstrapTable行内编辑初始方案 ...

  7. ABP module-zero +AdminLTE+Bootstrap Table+jQuery权限管理系统第十五节--缓存小结与ABP框架项目中 Redis Cache的实现

    返回总目录:ABP+AdminLTE+Bootstrap Table权限管理系统一期 缓存 为什么要用缓存 为什么要用缓存呢,说缓存之前先说使用缓存的优点. 减少寄宿服务器的往返调用(round-tr ...

  8. [转]手把手教你--Bootstrap Table表格插件及数据导出(可导出Excel2003及Exce2007)

    原文地址:https://blog.csdn.net/javayoucome/article/details/80081771 1.介绍 Bootstrap Table介绍见官网:http://boo ...

  9. bootstrap table教程--使用入门基本用法

    笔者在查询bootstrap table资料的时候,看了很多文章,发觉很多文章都写了关于如何使用bootstrap table的例子,当然最好的例子还是官网.但是对于某部分技术人员来说,入门还是不够详 ...

  10. Bootstrap框架常用总结

    Bootstrap框架常用标签:    标题标签:<h1>-<h6>        bootstrap中也设置的相同的样式  - 若要使用 必须使用空标签来定义 比如<s ...

随机推荐

  1. IO到NIO的一个转变

    本内容来源:Jack视频讲解和自己的一个理解. 1.故事还得从网络模型或者IO开始聊起 2.你有想过传统IO真正存在的问题吗? 3.如果你是设计者,IO可以怎样改进? 4.NIO原理分析以及代码实现 ...

  2. 《手把手教你》系列进阶篇之3-python+ selenium自动化测试 - python几种骚操作你都知道吗?(详细教程)

    1. 简介 这篇文章主要是给小伙伴或者童鞋们介绍和分享 python几种骚操:读取配置文件.获取根目录的相对路径.获取系统时间和格式化时间显示.字符串切割等等操作.为后边的自动化框架打下一个结实的基础 ...

  3. APP Distribution Guide 苹果官网

    https://developer.apple.com/library/ios/documentation/IDEs/Conceptual/AppDistributionGuide/Introduct ...

  4. go基础之json格式数据处理

    go基础之json格式数据处理 1.结构体小写问题导致出错 2.struct没有正确加tag 3.struct加上tag 4.struct tag扩展 go基础之json格式数据处理 go标准库里面提 ...

  5. hdu3015,poj1990树状数组

    题目链接:http://acm.hdu.edu.cn/showproblem.php?pid=3015 题意:给定n组数,每组数有值x和值h,求n组数两两的val的总和.将所有x和所有h分别离散化(不 ...

  6. Mac ifconfig 详解(ifconfig detail)-- 外婆送来的丁香(Grandma's clove)

    引言 Intro 图片源链:https://pixnio.com/zh/%E6%A4%8D%E7%89%A9/%E8%8A%B1/%E4%B8%81%E9%A6%99%E8%8A%B1-%E5%8F% ...

  7. 大神带你一天了解zabbix(一)

    第15章 Zabbix的搭建 15.1 为什么使用监控服务 对系统实现不间断的监控,实现报警通知(电话,微信,邮件,发短信,手环) 实时反馈系统当前的状态信息 保证服务的可靠安全性 保证业务的稳定运行 ...

  8. 基于FPGA+USB2.0的图像采集系统测试小结-mt9m001

    基于FPGA+USB2.0的图像采集系统测试小结-mt9m001 该系统采用层层惊涛出品的FPGA_VIP_USB_V102板卡测试 板卡分为:核心板.底板.摄像头板 核心板采用:ep4ce10e22 ...

  9. 【Flutter】372- Flutter移动端实战手册

    ☝点击上方蓝字,关注我们! 本文字数:3705字 预计阅读时间:28分钟 导 读 Flutter又双叒叕来了!本周推送是我们Flutter系列文章的最终篇!<Flutter移动端实战手册> ...

  10. HA-高可用集群

    原理:两台web服务器,通过心跳线进行通信,当主节点出现服务异常,备用节点通过探测判断主节点是否存活,若是不存活,就把服务接管过来. Web1和Web2中间有一根心跳线,检查对方的存活状态.流动IP: ...