问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

在bootstrap-table的操作按钮点击后出来的弹框中如何添加一个数据表格...

发布网友 发布时间:2022-04-28 20:51

我来回答

2个回答

懂视网 时间:2022-04-29 16:08

  在使用bootstrap table时可能在很多时候回用的表格来显示数据,如果自己写那肯定没问题,但是数据展示出来就麻烦多了,然而bootstrap table 封装了一套完善的数据表格组件,把从后台请求的数据很容易就展示出来了,bootstrap table有两种实现方式,一种是通过table写定在html里面,另一种是通过js实现,js实现比较灵活,所以这里采用js方式,下面来看实现。

bootstrap61.jpg

推荐教程:Bootstrap图文教程

客户端

必须先引入相应的css、js等文件

 <!DOCTYPE html>
 <html>
 <head>
<meta charset="UTF-8">
<title>Bootstrap-Table</title>
<link rel="stylesheet" href="http://apps.bdimg.com/libs/bootstrap/3.3.4/css/bootstrap.min.css"/>
<link rel="stylesheet" href="assets/bootstrap-table.css"/>
<meta name="viewport" content="width=device-width, initial-scale=1.0, maximum-scale=1.0, user-scalable=0">
</head>
<body>
<div>
 <div>
 <div class="col-*-12">

  <div id="toolbar">
  <div class="btn btn-primary" data-toggle="modal" data-target="#addModal">添加记录</div>
  </div>

  <table id="mytab" class="table table-hover"></table>

  <div class="modal fade" id="addModal" tabindex="-1" role="dialog" aria-hidden="true">
  <div class="modal-dialog">
   <div class="modal-content">
   <div class="modal-header">
    <button type="button" class="close" data-dismiss="modal" aria-hidden="true">
    ×
    </button>
    <h4 class="modal-title" id="myModalLabel">添加记录</h4>
   </div>
   <div class="modal-body">
    <form role="form" action="javascript:void(0)">
    <div class="form-group">
     <input type="text" class="form-control" id="name" placeholder="请输入名称">
    </div>
    <div class="form-group">
     <input type="text" class="form-control" id="age" placeholder="请输入年龄">
    </div>
    </form>
   </div>
   <div class="modal-footer">
    <button type="button" class="btn btn-default" data-dismiss="modal">取消</button>
    <button type="button" class="btn btn-primary" id="addRecord">提交</button>
   </div>
   </div>
  </div>
  </div>

 </div>
 </div>
</div>
<script src="http://apps.bdimg.com/libs/jquery/2.1.4/jquery.min.js"></script>
<script src="http://apps.bdimg.com/libs/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script src="assets/bootstrap-table.js"></script>
<script src="assets/bootstrap-table-zh-CN.js"></script>
<script type="text/javascript">
 $(function() {
 //根据窗口调整表格高度
 $(window).resize(function() {
  $('#mytab').bootstrapTable('resetView', {
  height: tableHeight()
  })
 })

 $('#mytab').bootstrapTable({
  url: "",//数据源
  dataField: "rows",//服务端返回数据键值 就是说记录放的键值是rows,分页时使用总记录数的键值为total
  height: tableHeight(),//高度调整
  search: true,//是否搜索
  pagination: true,//是否分页
  pageSize: 20,//单页记录数
  pageList: [5, 10, 20, 50],//分页步进值
  sidePagination: "server",//服务端分页
  contentType: "application/x-www-form-urlencoded",//请求数据内容格式 默认是 application/json 自己根据格式自行服务端处理
  dataType: "json",//期待返回数据类型
  method: "post",//请求方式
  searchAlign: "left",//查询框对齐方式
  queryParamsType: "limit",//查询参数组织方式
  queryParams: function getParams(params) {
  //params obj
  params.other = "otherInfo";
  return params;
  },
  searchOnEnterKey: false,//回车搜索
  showRefresh: true,//刷新按钮
  showColumns: true,//列选择按钮
  buttonsAlign: "left",//按钮对齐方式
  toolbar: "#toolbar",//指定工具栏
  toolbarAlign: "right",//工具栏对齐方式
  columns: [
  {
   title: "全选",
   field: "select",
   checkbox: true,
   width: 20,//宽度
   align: "center",//水平
   valign: "middle"//垂直
  },
  {
   title: "ID",//标题
   field: "id",//键名
   sortable: true,//是否可排序
   order: "desc"//默认排序方式
  },
  {
   field: "name",
   title: "NAME",
   sortable: true,
   titleTooltip: "this is name"
  },
  {
   field: "age",
   title: "AGE",
   sortable: true,
  },
  {
   field: "info",
   title: "INFO[using-formatter]",
   formatter: 'infoFormatter',//对本列数据做格式化
  }
  ],
  onClickRow: function(row, $element) {
  //$element是当前tr的jquery对象
  $element.css("background-color", "green");
  },//单击row事件
  locale: "zh-CN", //中文支持
  detailView: false, //是否显示详情折叠
  detailFormatter: function(index, row, element) {
  var html = '';
  $.each(row, function(key, val){
   html += "<p>" + key + ":" + val + "</p>"
  });
  return html;
  }
 });

 $("#addRecord").click(function(){
  alert("name:" + $("#name").val() + " age:" +$("#age").val());
 });
 })

 function tableHeight() {
 return $(window).height() - 50;
 }
 /**
 * 列的格式化函数 在数据从服务端返回装载前进行处理
 * @param {[type]} value [description]
 * @param {[type]} row [description]
 * @param {[type]} index [description]
 * @return {[type]} [description]
 */
 function infoFormatter(value, row, index)
 {
 return "id:" + row.id + " name:" + row.name + " age:" + row.age;
 }
</script>
</body>
</html>

服务端:只需在接到请求时返回json数组就行了,是json数组哦,不是单个对象,不然就数据展示不出来。

注意bootstrap table 可以前端分页也可以后端分页,这里我们使用的是后端分页,后端分页时需返回含有

total:总记录数 这个键值好像是固定的,我看文档没找到可以修改成别的

rows: 记录集合 键值可以修改 dataField 自己定义成自己想要的就好

{
"total":200,
"rows":[
{"id":1, "name":"sallency", "age": 26},
{"id":1, "name":"sallency", "age": 26},
{"id":1, "name":"sallency", "age": 26},
{"id":1, "name":"sallency", "age": 26},
{"id":1, "name":"sallency", "age": 26}]
}

但是这可能会有请求时数据赋值不了的情况,那时你就会干着急了,下面还可以使用如下方式进行数据渲染。这个效果和上面一个不一样,这里就不上图了。同样第一步要引入官网所要求的的css/js等文件。

var $table = $("#product");
 $table.bootstrapTable({
 url: "http://192.168.6.240:8080/form", 
 dataType: "json",
 contentType: "application/x-www-form-urlencoded",

 // toolbar: '#toolbar',  //工具按钮用哪个容器
  striped: true,   //是否显示行间隔色
  cache: false,   //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
  pagination: true,   //是否显示分页(*)
  sortable: false,   //是否启用排序
  sortOrder: "desc",   //排序方式
 
  sidePagination: "client",  //分页方式:client客户端分页,server服务端分页(*)
  pageNumber:1,   //初始化加载第一页,默认第一页
  pageSize: 10,   //每页的记录行数(*)
  pageList:[5,10,20,30],//分页步进值 //可供选择的每页的行数(*)
 // search:true,  //是否显示表格搜索,此搜索是客户端搜索,不会进服务端,所以,个人感觉意义不大
 // strictSearch: true,
  oolbarAlign:'right',//工具栏对齐方式
  buttonsAlign:'right',//按钮对齐方式
 // showColumns: true,   //是否显示所有的列
 // showRefresh: true,   //是否显示刷新按钮
  minimumCountColumns: 2,  //最少允许的列数
  clickToSelect: true,  //是否启用点击选中行
  //height: 500,   //行高,如果没有设置height属性,表格自动根据记录条数觉得表格高度
  uniqueId: "id",   //每一行的唯一标识,一般为主键列
 // showToggle:true,   //是否显示详细视图和列表视图的切换按钮
  cardView: false,   //是否显示详细视图
 // detailView: false,   //是否显示父子表onEditableSave
 // singleSelect: false,
 // striped: true, //是否显示行间隔色
 // cache: false, //是否使用缓存,默认为true,所以一般情况下需要设置一下这个属性(*)
 // sortable: true, //是否启用排序 
 // pagination: true, //显示分页按钮
 // sortName:"starttime",
 // sortOrder:"desc", //默认排序
 // pageNumber: 1, //初始化加载第一页,默认第一页
 // pageSize: 10, //默认显示的每页个数
 // showRefresh: true,   //是否显示刷新按钮
 // showPaginationSwitch: true, //是否显示选择分页数按钮
 // queryParamsType: '', //默认值为 'limit' ,在默认情况下 传给服务端的参数为:offset,limit,sort // 设置为 '' 在这种情况下传给服务器的参数为:pageSize,pageNumber
  queryParams:function(params){
  var temp = { 
  pageSize: params.pageSize, //页面大小
  pageNumber: params.pageNumber, //页码
   table_data:tempdata,
  
  }
  return temp;
 },
 responseHandler:function(res){
  //动态渲染表格之前获取有后台传递的数据时,用于获取出除去本身渲染所需的数据的额外参数
  //详见此函数参数的api
  return res;
 },
 // search: true, //显示搜索框(客户端搜索)
 //sidePagination: "server", //服务端处理分页
 // showToggle:true,   //是否显示详细视图和列表视图的切换按钮
 cardView: false,   //是否显示详细视图
 // detailView: false,   //是否显示父子表
 columns: [{
  title : '备注',
  field : 'code',
  align : 'center',
  width : 100,
  valign : 'middle',
  
 },{
  title : '操作',
  field : 'name',
  align : 'center',
  width : 120 ,
  valign : 'middle',
  
 },
 {
  title : '编码',
  field : 'calcMode',
  align : 'center',
  width : 120 ,
  valign : 'middle',
  
 }],
 
 onLoadSuccess: function(){ //加载成功时执行 
  alert("加载数据成功"); 
 }, 
 onLoadError: function(){ //加载失败时执行 
  alert("加载数据失败"); 
 } 
 });

};

会使用之后是不是觉得比自己写的table更好用多了,还不用写一大堆js和div等,还有更多功能可以去官网了解怎么使用。

热心网友 时间:2022-04-29 13:16

<table align="center">//居中显示 高度可以用css 在你的<head></head>之间加以下代码: <style type="text/css"> td{ height:100px;//100即是大小 } </style> 但是如果每个列的内容不同或是有的列超出死的高度时会失效的。所以得保证每列的内容不要有太大的差异 同理啊大哥 <div align="center"> <table></table> </div>
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
贷款记录在征信保留几年? 安徽徽商城有限公司公司简介 安徽省徽商集团新能源股份有限公司基本情况 安徽省徽商集团有限公司经营理念 2019哈尔滨煤气费怎么有税? 快手删除的作品如何恢复 体育理念体育理念 有关体育的格言和理念 什么是体育理念 万里挑一算彩礼还是见面礼 移动硬盘里文件夹被病毒篡改为应用程序怎么恢复? bootstrap-table分页怎么和后台联调 移动硬盘里的文件被当作病毒删除 移动硬盘里的文件被病毒隐藏了,无法显示 急!移动硬盘中病毒,个别文件夹不见了,但是杀毒扫描的时候这些文件夹仍被扫描到,怎么恢复文件夹? bootstrap table toolbar 怎么用的 移动硬盘病毒感染了,文件都不见了,怎么办急急急! bootstrap table toolbar怎么用 杀毒的时候把移动硬盘里面的病毒删除了,硬盘变小了,里面的数据还能恢复吗 bootstraptable怎么条件查询 移动硬盘在别人电脑上使用时,杀毒软件将我被感染病毒的文件删除了,请高手指点如何才能找回啊? 移动硬盘一有病毒,文件就会被删除,怎么办? 移动硬盘有病毒文件丢失怎么样能找回来 移动硬盘上的文件被病毒吞掉后怎样灰复?很重要的文件,谁能告诉我?谢谢 杀毒软件显示有病毒就删除了,是移动硬盘里的文件,怎么还原 移动硬盘上感染病毒的文件被杀毒软件删除了,如何才能找回啊?求救啊 移动硬盘中病毒文件被删怎么恢复,急急急 红米9定时关机前提醒铃音设置 存在移动硬盘里的文件被病毒删除了,怎样才能恢复文件 联通米粉卡被限速了怎么办? bootstrap-table 的 toolbar 能去掉显示吗 奴字可以加什么偏旁? 奴,加偏旁并组词(两个) 奴可以加什么偏旁和组词 奴加一个偏旁成新字在组一个词 奴偏旁可以换成什么字 奴的偏傍是什么? 奴字加什么部首 鹿茸怎么选才是最好 怎样选鹿茸好 手机不用的怎样删除 怎样能把自己的从对方的微信里彻底删除? 怎样删除不用的? 怎样删除不用的? 不想要怎么注销 怎样可以彻底删除数据? 手机如何把永久删除掉。 怎么能加朋友的QQ企鹅为好友 腾讯企鹅不知道怎么添加好友 怎么才能给QQ企鹅加好友