BootStrap Table对前台页面表格的支持实例讲解


Posted in Javascript onDecember 22, 2016

1、bootstrap-table是在bootstrap的基础上面做了一些封装,所以在使用bootstrap-table之前要导入的js和css有

1)基本的还是jQuery

<script type="text/javascript" src="js/jquery.min.js?v=2.1.4"></script>

2)引入bootstrap

<script type="text/javascript" src="js/bootstrap.min.js?v=3.3.6"></script>
<link rel="stylesheet" href="css/bootstrap.min14ed.css?v=3.3.6">

 3)引入bootstrap-table

<script type="text/javascript" src="js/plugins/bootstrap-table/bootstrap-table.min.js"></script>
<link rel="stylesheet" href="css/plugins/bootstrap-table/bootstrap-table.min.css">

2、页面的编写方式(建议)

<div class="table">
 <table id="publish_model"></table>
 </div>

3、具体的数据加载和处理都在js里面完成,具体的实现过程不用自己去写,bootstrap-table都写好了

//这里是js的具体代码的样式处理
dynamicTable = $("#publish_model").bootstrapTable("destroy").bootstrapTable({
  url: "model/getPublishModel",           
  striped: true,           
  pagination: true, 
  singleSelect: true,
  clickToSelect: true, 
  pageNumber:1,      
  pageSize: 10,      
  pageList: [5, 10, 20], 
  sidePagination: "server",
  queryParamsType: "limit",
  queryParams: getPageMessage,
  minimunCountColumns: 2,
  height:$(window).height()*0.85,
  columns:[{
   field:"modelName",
   title:"模型名称",
   align: "center",
  },{
   field:"modelDescription",
   title:"模型描述",
   align: "center"
  },{
   field:"executeType",
   title:"执行类型",
   align: "center"
  },{
   field:"typeName",
   title:"模型类型",
   align: "center"
  },{
   field:"price",
   title:"价格",
   align: "center"
  },{
   field:"publishDate",
   title:"发布时间",
   align: "center",
   formatter: function(v){
     var date = new Date(v).format("yyyy-MM-dd hh:mm:ss");
     return "<span>"+date+"</span>";
   }
  },{
   field:"shortcutOperation",
   title:"快捷操作",
   align: "center",
   formatter: function(v,r,i){
    var str = "<div class='btn-group'>"+
       "<button id="+r.modelId+" class='btn btn-success btn-xs' onclick='applyReason(\""+r.modelId+"\")'>申请权限</button>"+
       "</div>"
    if(r.status=='00'){
     var str = "<div class='btn-group'>"+
        "<button class='btn btn-success btn-xs' style='background:#ccc;border-color:#ccc;' >已申请</button>"+
        "</div>"
    }
    return str;
   }
  }]
 });

//传递参数到后台
function getPageMessage(params){
 var temp={
  limit: params.limit,
  offset: params.offset,
  modelName:$("#model_name").val(),
  typeId:$("#modelType").val()
 };
 return temp;
}

 这里说明几个问题:

1)这里加入这部分( bootstrapTable("destroy") )的目的是页面存在刷新效果需要重新加载

2)相对应的设置参考官方文档:http://bootstrap-table.wenzhixin.net.cn/documentation/

3)后面简单说一下具体的效果设置:在具体的单元格数据中可以使用formatter()方法来实现,其中存在3个值v,r,i分别是值,行数据,角标。具体的效果可以参考着bootstrap的方式来实现通过return的方式来给页面呈现不一样的效果,当然也可以设置直接设置效果通过cellStyle方法也是可以的!

4)传参:这个根据个人的一个实现功能来做,不管有没有数据,后台传过去的不是null而是""。limit和offset是做分页处理需要传给后台 

4、然后就是后台的一个处理(很重要)

@RequestMapping("/getPublishModel")
 @ResponseBody
 public Map<String, Object> getModelPublishList(Integer limit,Integer offset,String modelName,String typeId,HttpServletResponse response) throws IOException{
  //设置相应数据格式
  response.setContentType("application/json;charset=utf-8");
  try {
   // 获取相应数据
   Map<String, Object> modelList = modelManager
     .getModelPublishListData(limit, offset, modelName,typeId);
   return modelList;
  } catch (Exception e) {
   e.printStackTrace();
   throw e;
  } finally {
   HibernateSessionFactory.closeSession();
  }
 }

说明:

1)数据返回的形式:

Map<String, Object> map = new HashMap<String,Object>();
map.put("total", "分页时采用的数据总条数");//这里可以单独写一个sql来实现总条数
map.put("rows", "数据的list集合");//这里可以获取相对应的数据

注意:因为前台和字段名字要对应所以,list的泛型可以是对象的形式,也可以是Map<String, Object>的形式

List list = querySql.setResultTransformer(Transformers.ALIAS_TO_ENTITY_MAP).list();//这是我用hibernate执行的map结果会自动封装成Map

sql里面一定要设置别名,比如:m.modelId AS modelId等

2)返回的时候通过json的方式放回,这里不建议springmvc自动返回,建议通过PrintWriter的方式写出到前台,不然会出现json方面的错误。

5、展示效果

BootStrap Table对前台页面表格的支持实例讲解

提示:搜索功能需要自己做,传入的参数也是通过上面的传入

6.问题:因为考虑到接送的传输问题,在bootstrap-table里面存在post请求的问题,这也是我一直没有解决的问题!

1)因为bootstrap-table对post请求进行了封装,在使用post请求的时候取不到数据(我也在研究这个问题,希望高人指点)

2)后台数据封装的字段名问题,必须要一样才可以,不用别名返回的是字段名1234。。这个是因为hibernate造成的,其他框架略过

Javascript 相关文章推荐
jQuery 图像裁剪插件Jcrop的简单使用
May 22 Javascript
jQuery的attr与prop使用介绍
Oct 10 Javascript
javascript 获取网页标题代码实例
Jan 22 Javascript
node.js实现BigPipe详解
Dec 05 Javascript
dedecms页面如何获取会员状态的实例代码
Mar 15 Javascript
JavaScript面向对象分层思维全面解析
Nov 22 Javascript
Bootstrap php制作动态分页标签
Dec 23 Javascript
jQuery实现页面顶部下拉广告
Dec 30 Javascript
Bootstrap轮播图学习使用
Feb 10 Javascript
Vue实现数据表格合并列rowspan效果
Nov 30 Javascript
JS表格的动态操作完整示例
Jan 13 Javascript
node创建Vue项目步骤详解
Mar 06 Javascript
JS实现的简单轮播图运动效果示例
Dec 22 #Javascript
基于BootStrap与jQuery.validate实现表单提交校验功能
Dec 22 #Javascript
详解js的事件代理(委托)
Dec 22 #Javascript
HTML页面定时跳转方法解析(2种任选)
Dec 22 #Javascript
vue双向绑定的简单实现
Dec 22 #Javascript
jQuery使用Layer弹出层插件闪退问题
Dec 22 #Javascript
深入理解jquery中extend的实现
Dec 22 #Javascript
You might like
PHP中的数组处理函数实例总结
2016/01/09 PHP
php微信开发之百度天气预报
2016/11/18 PHP
prototype1.4中文手册
2006/09/22 Javascript
IE 当eval遇上function的处理
2011/08/09 Javascript
原生Js实现元素渐隐/渐现(原理为修改元素的css透明度)
2013/06/24 Javascript
JavaScript中创建对象和继承示例解读
2014/02/12 Javascript
jquery提交form表单简单示例分享
2014/03/03 Javascript
js实现页面跳转重定向的几种方式
2014/05/29 Javascript
jQuery中:visible选择器用法实例
2014/12/30 Javascript
JavaScript中的replace()方法使用详解
2015/06/06 Javascript
JavaScript实现添加及删除事件的方法小结
2015/08/04 Javascript
Nodejs如何搭建Web服务器
2016/03/28 NodeJs
js实现倒计时及时间对象
2016/11/15 Javascript
Angualrjs 表单验证的两种方式(失去焦点验证和点击提交验证)
2017/05/09 Javascript
JS判断一个数是否是水仙花数
2017/06/11 Javascript
JavaScript之promise_动力节点Java学院整理
2017/07/03 Javascript
vue mint-ui 实现省市区街道4级联动示例(仿淘宝京东收货地址4级联动)
2017/10/16 Javascript
nodejs使用http模块发送get与post请求的方法示例
2018/01/08 NodeJs
vue.js编译时给生成的文件增加版本号
2018/09/17 Javascript
JavaScript面向对象中接口实现方法详解
2019/07/24 Javascript
python通过pil模块获得图片exif信息的方法
2015/03/16 Python
在Lighttpd服务器中运行Django应用的方法
2015/07/22 Python
Python绑定方法与非绑定方法详解
2017/08/18 Python
TensorFlow中权重的随机初始化的方法
2018/02/11 Python
python如何读写json数据
2018/03/21 Python
Flask框架信号用法实例分析
2018/07/24 Python
浅析python中numpy包中的argsort函数的使用
2018/08/30 Python
python之消除前缀重命名的方法
2018/10/21 Python
Python动态语言与鸭子类型详解
2019/07/01 Python
python 6行代码制作月历生成器
2020/09/18 Python
如何用Python 实现全连接神经网络(Multi-layer Perceptron)
2020/10/15 Python
国外软件测试工程师面试题
2016/12/09 面试题
中专毕业生自我鉴定范文
2013/11/09 职场文书
讲文明树新风公益广告宣传方案
2014/02/25 职场文书
销售行政专员岗位职责
2014/06/10 职场文书
2015年银行客户经理工作总结
2015/04/01 职场文书