Bootstrap Table使用方法解析

bootstrap table是一个非常不错的,基于bootstrap的插件,它扩展和丰富了bootstrap表格的操作,如格式化表格,表格选择器,表格工具栏,分页等等。

最近基于bootstrap开发一个开台发布系统,就开发过程中,使用bootstap table遇到的一些问题及收获记录如下:

开始使用:

需要在你自己的页面中引入以下样式及脚本:

<link rel="stylesheet" href="bootstrap.min.css">
<link rel="stylesheet" href="bootstrap-table.css">

<script src="jquery.min.js"></script>
<script src="bootstrap.min.js"></script>
<script src="bootstrap-table.js"></script>

https://github.com/wenzhixin/bootstrap-table/

一、Bootstrap table 支持超多列,会自动显示水平滚动条。

我们用bootstrap开发,经常会遇到一个头疼的问题,如果客户要求表格中显示的列较多,无论我们用bootstrap的哪种布局方式,显示效果都不尽人意。Bootstap table很好的协处理了这个问题,使我们能够在不改变原有的布局方式的情况下,很好的处理超多列的问题,而且支持自定义显示列名,效果如下:

使用方式很简单,在一个普通的表格中设置data-toggle="table",就可以在不写JavaScript的情况下启用Bootstrap Table。当然还可以通过脚本的方式触发:

$('#table').bootstrapTable({
 url: 'data.json'
});。

是不是很好使呢,只在我们指定的表格中会带入Bootstrap Table的样式,其它未指定的,不会受影响。

二、结合Bootstrap Modal作弹出表格子页面,并获取当前选中的数据后更新到父页面中:

功能说明:

用户点父页面中的某一输入框,系统会弹出一个查询界面,供用户检索选择相关的数据。

页面布局思路:

首先创建一个Modal分部视图:

 <!-- Modal -->
<div class="modal fade" role="dialog" aria-labelledby="gridSystemModalLabel" id="gridSystemModal">
 <div class="modal-dialog" role="document">
 <div class="modal-content">
 <div class="modal-header">
 <button type="button" class="close" data-dismiss="modal" aria-label="Close"><span aria-hidden="true">×</span></button>
 <h4 class="modal-title" id="gridSystemModalLabel">xxxx查询</h4>
 </div>
 <div class="modal-body">
 <div class="container-fluid" id="fjShipChkList">
 @Html.Partial("Modal/FjShipChkList")
 </div>
 </div>
 <div class="modal-footer">
 <button type="button" class="btn btn-default" data-dismiss="modal">关闭</button>
 <button type="button" class="btn btn-primary">选择</button>
 </div>
 </div><!-- /.modal-content -->
 </div><!-- /.modal-dialog -->
</div><!-- /.modal -->

以及我们要显示业务数据的列表分部视图,并被Modal分部视图调用:

<div class="row table-toolbar">
 <div class="col-md-12">
 <div class="pull-right form-inline">
 <div class="form-group">
 <div class="input-group input-medium">
  <input type="text" class="form-control input-search" placeholder="航次" id="fjShipChkList-keyword" name="keyword" value="" />
  <span class="input-group-btn">
  <button class="btn btn-success btn-search" type="button" id="modal-search">搜索</button>
  </span>
 </div>
 </div>
 </div>
 </div>
</div>

 <table class="table table-striped table-bordered table-hover js-table" data-toggle="table"
 data-url="data1.json" data-height="299" data-click-to-select="true"
 data-select-item-name="radioName" id="table-ShipChk">
 <thead>
 <tr>
 <th data-field="state" data-radio="true"></th>
 <th class="sorting" aria-column="SHIP_NM">船名</th>
 <th class="sorting" aria-column="SHIP_NM_EN">英文船名</th>
 <th class="sorting" aria-column="VOY_ID">航次</th>
 <th class="sorting" aria-column="DOCK_BTH_NM">停靠泊位</th>
 <th class="sorting" aria-column="ARR_DT">到港时间</th>
 </tr>
 </thead>
 <tbody id="body-fjShipChkList">
 @if (Model.GetType() != typeof (QUARANTINE_HANDLE_RESULT))
 {
 int i = 0;
 foreach (VOYAGE_DYNM item in Model.PageList)
 {
 <tr class="odd gradeX">
  <td class="bs-checkbox"><input data-index="@(i++)" name="radioName" type="radio"></td>
  <td>
  @Html.DisplayFor(it => item.SHIP_NM)
  </td>
  <td>
  @Html.DisplayFor(it => item.SHIP_NM_EN)
  </td>
  <td>
  @Html.DisplayFor(it => item.VOY_ID)
  </td>
  <td>
  @Html.DisplayFor(it => item.DOCK_BTH_NM)
  </td>
  <td>
  @Html.DisplayFor(it => item.ARR_DT)
  </td>
 </tr>
 }
 }
 </tbody>
 </table>

在父页面中调用Modal分部视图:

@Html.Partial("Modal/CustomModal")

引入Modal分部视图的位置最好是与父页面中的顶层元素为兄弟节点,避免Modal调用失败。

需要在启动Modal 弹出层的元素上加上:data-toggle="modal" data-target="#gridSystemModal"就可以启动Modal了。点探索时,用ajax从后台取数据,并返回一个分部视图,返回成功后直接替换原有的业务数据分部视图。

好了,说了这么多都和我们的主角没多大关系,现在言归正传,搬出我们的主角。现在Modal登场了,我们会想,怎么让这个弹出页面和我们的父页面交互数据呢?我采用的方式是Bootstrap Table,原因很简单:Bootstrap Table天生就是用来处理bootstrap table的,功能强悍,使用简单。

首先,在我们的业务数据分部视图中,

<table class="table table-striped table-bordered table-hover js-table" data-toggle="table"
 data-url="data1.json" data-height="299" data-click-to-select="true"
 data-select-item-name="radioName" id="table-ShipChk">
 <thead>
 <tr>
 <th data-field="state" data-radio="true"></th>
 <th class="sorting" aria-column="SHIP_NM">船名</th>
 <th class="sorting" aria-column="SHIP_NM_EN">英文船名</th>
 <th class="sorting" aria-column="VOY_ID">航次</th>
 <th class="sorting" aria-column="DOCK_BTH_NM">停靠泊位</th>
 <th class="sorting" aria-column="ARR_DT">到港时间</th>
 </tr>
 </thead>
 <tbody id="body-fjShipChkList">
 @if (Model.GetType() != typeof (QUARANTINE_HANDLE_RESULT))
 {
 int i = 0;
 foreach (VOYAGE_DYNM item in Model.PageList)
 {
 <tr class="odd gradeX">
  <td class="bs-checkbox"><input data-index="@(i++)" name="radioName" type="radio"></td>
  <td>
  @Html.DisplayFor(it => item.SHIP_NM)
  </td>
  <td>
  @Html.DisplayFor(it => item.SHIP_NM_EN)
  </td>
  <td>
  @Html.DisplayFor(it => item.VOY_ID)
  </td>
  <td>
  @Html.DisplayFor(it => item.DOCK_BTH_NM)
  </td>
  <td>
  @Html.DisplayFor(it => item.ARR_DT)
  </td>
 </tr>
 }
 }
 </tbody>
 </table>

加入了:data-url="data1.json" data-height="299" data-click-to-select="true"  data-select-item-name="radioName",其中data-select-item-name指明我们的表格是radio方式的,只能选择其中某一行(当然也可以支持多行选择)。然后再按官方文档,上个小菜,一切即将搞定,是该收拾下班了:

$("#gridSystemModal .btn-primary").click(function () {
 var selectRow = $("#table-ShipChk").bootstrapTable('getSelections');

 if (selectRow.length < 1) {
 selectRow = $table.bootstrapTable('getSelections');
 if (selectRow.length < 1){
 alert("请先选择船舶!");
 return;
 }
 }
 $("#SHIP_NAME").val(selectRow[0][1].trim());
 $("#VOYAGE_NO").val(selectRow[0][3].trim());
 $("#SHIP_NM_EN").val(selectRow[0][2].trim());
 $("#DOCK_BTH_NM").val(selectRow[0][4].trim());
 $("#ARR_DT").val(selectRow[0][5].trim());
 $("#gridSystemModal").modal('hide');
 });

But,意外发生了,就算我把那个选择按钮点破了,也选不中我要的数据。Why???为什么,为什么。查官方文档,就是一名$("#table-ShipChk").bootstrapTable('getSelections')搞定的事,为什么在我这就搞不定了,度娘,GG一无所获。用Bootstrap Table的初衷,就是它简单,强大呀,怎么会这样呢,好吧,加班,查查查。。

问题就出在,每次ajax请求数据后,我都是返回一个新的分部视图去替换原有的分部视图,替换后没有把Bootstrap Table启动起来,别人还在睡大觉呢,你怎么‘getSelections'。

好吧,在ajax success中补它一刀:$("#table-ShipChk").bootstrapTable();

好了,Bootstrap Table醒了,我可以下班了。

如果大家还想深入学习,可以点击这里进行学习,再为大家附3个精彩的专题:

Bootstrap学习教程

Bootstrap实战教程

Bootstrap插件使用教程

Bootstrap Table使用教程

以上就是本文的全部内容,希望对大家的学习有所帮助,也希望大家多多支持我们。

(0)

相关推荐

  • Bootstrap Table使用心得总结

    之前一直在调研我们的管理后台使用的表格控件,查询到 : http://bootstrap-table.wenzhixin.net.cn的Bootstrap Table 感觉挺不错,但是由于官方的文档不是怎么的完善,导致自己的网络数据请求一直没有通过. 今天终于调试通过,在这里与大家分享一下. 一.相关的配置文件引入 <!-- jQuery文件.务必在bootstrap.min.js 之前引入 --> <script src="//cdn.bootcss.com/jquery/1

  • Bootstrap Table使用整理(五)之分页组合查询

    推荐阅读: Bootstrap Table使用整理(一) http://www.jb51.net/article/115789.htm Bootstrap Table使用整理(二)  http://www.jb51.net/article/115791.htm Bootstrap Table使用整理(三)  http://www.jb51.net/article/115795.htm Bootstrap Table使用整理(四)之工具栏 http://www.jb51.net/article/1

  • 值得分享的Bootstrap Table使用教程

    bootstrap-table是在bootstrap-table的基础上写出来的,专门用于显示数据的表格插件.而bootstrap是来自 Twitter,是目前最受欢迎的前端框架.Bootstrap 是基于HTML.CSS.JAVASCRIPT 的,具有简便灵活,快速前端开发的优势.对与bootstrap在此就不在叙述. jquery ,bootstrap ,bootstrap-table 三者之间的关系.bootstrap很多部分代码涉及到了jquery的,也就是说 bootstrap是依赖j

  • Bootstrap Table使用整理(一)

    相关阅读: Bootstrap Table使用整理(二)  http://www.jb51.net/article/115791.htm Bootstrap Table使用整理(三)  http://www.jb51.net/article/115795.htm Bootstrap Table使用整理(四)之工具栏 http://www.jb51.net/article/115798.htm Bootstrap Table使用整理(五)之分页组合查询 http://www.jb51.net/ar

  • Bootstrap table的使用方法

    Jquery中的一些东西学习一下子,补充完善一下,毕竟有些时候没有使用到 这个方式很有用,在使用bootstrap table的时候,选择当前已经选择的节点的事件中的ID的值 当前rows中有很多的数据,但是我只需要id这一个值,这个时候进行操作就非常的简单了. $.map(data,function(item,index){return XXX}) //使用的总结: //把一个数组,按照新的方式进行组装返回,和原来的数组不一样. //遍历data数组中的每个元素,并按照return中的计算方式

  • Bootstrap table使用方法详细介绍

    bootstrap-table是一个非常好用的表格插件,提供了很多工具及分页.搜索等功能. 首先我们需要下面几个文件, <span style="font-size:18px;"><!-- bootstrap table --> <script type="text/javascript" src="${pageContext.request.contextPath}/res/jquery-1.10.2/jquery.js&q

  • DataTables+BootStrap组合使用Ajax来获取数据并且动态加载dom的方法(排序,过滤,分页等)

    Datatables是一款jquery表格插件.它是一个高度灵活的工具,可以将任何HTML表格添加高级的交互功能. 主要功能 分页,即时搜索和排序 几乎支持任何数据源:DOM, javascript, Ajax 和 服务器处理 支持不同主题 DataTables, jQuery UI, Bootstrap, Foundation 各式各样的扩展: Editor, TableTools, FixedColumns -- 丰富多样的option和强大的API 支持国际化 超过2900+个单元测试 免

  • Bootstrap Table使用方法解析

    bootstrap table是一个非常不错的,基于bootstrap的插件,它扩展和丰富了bootstrap表格的操作,如格式化表格,表格选择器,表格工具栏,分页等等. 最近基于bootstrap开发一个开台发布系统,就开发过程中,使用bootstap table遇到的一些问题及收获记录如下: 开始使用: 需要在你自己的页面中引入以下样式及脚本: <link rel="stylesheet" href="bootstrap.min.css"> <

  • JS组件Bootstrap Table使用方法详解

    最近客户提出需求,想将原有的管理系统,做下优化,通过手机也能很好展现,想到2个方案: a方案:保留原有的页面,新设计一套适合手机的页面,当手机访问时,进入m.zhy.com(手机页面),pc设备访问时,进入www.zhy.com(pc页面) b方案:采用bootstrap框架,替换原有页面,自动适应手机.平板.PC 设备 采用a方案,需要设计一套界面,并且要得重新写适合页面的接口,考虑到时间及成本问题,故项目采用了b方案 一.效果展示 二.BootStrap table简单介绍 bootStra

  • Bootstrap table使用方法汇总

    bootstrap-table是在bootstrap-table的基础上写出来的,专门用于显示数据的表格插件.而bootstrap是来自 Twitter,是目前最受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的,具有简便灵活,快速前端开发的优势.对与bootstrap在此就不在叙述.本文将着重讲解自己在项目中使用到bootstrap-table的一些理解和如何学习它. 首先交代一下,jquery ,bootstrap ,bootstrap-table 三者

  • Bootstrap table使用方法记录

    本文实例为大家分享了Bootstrap table的使用方法,供大家参考,具体内容如下 HTML代码: /*index.cshtml*/ @section styles{ <style> .main { margin-top:20px; } .modal-body .form-group .form-control { display:inline-block; } .modal-body .form-group .tips { color:red; } </style> } &l

  • bootstrap选项卡使用方法解析

    选项卡Tabs是Web中一种非常常用的功能.用户点击或悬浮对应的菜单项,能切换出对应的内容 Bootstrap框架中的选项卡主要有两部分内容组成: 选项卡组件(也就是菜单组件),对应的是 Bootstrap的 nav-tabs) 底部可以切换的选项卡面板,在 Bootstrap 中通常 tab-pane 来表示. <!-- 选项卡组件(菜单项nav-tabs)--> <ul id="myTab" class="nav nav-tabs" role=

  • BootStrap table使用方法分析

    本文实例为大家分享了BootStrap table的使用方法,供大家参考,具体内容如下 bootstrap table git address:https://github.com/wenzhixin/bootstrap-table 引入文件 <link rel="stylesheet" href="../bower_components/bootstrap/dist/css/bootstrap.min.css"/> <link rel="

  • Bootstrap table使用方法总结

    最近接触一个很棒的插件,Bootstrap table 没做过前端的表示对table的印象还只停留在html的table标签那一套,用过bootstrap table之后不得不说真是牛. 构造方式 1 .HTML <div class="btn-group hidden-xs"id="exampleTableEventsToolbar" > //定义一系列工具栏... </div> <table data-toggle="ta

  • Bootstrap Table使用方法详解

    bootstrap-table使用总结 bootstrap-table是在bootstrap-table的基础上写出来的,专门用于显示数据的表格插件.而bootstrap是来自 Twitter,是目前最受欢迎的前端框架.Bootstrap 是基于 HTML.CSS.JAVASCRIPT 的,具有简便灵活,快速前端开发的优势.对与bootstrap在此就不在叙述.本文将着重讲解自己在项目中使用到bootstrap-table的一些理解和如何学习它. 首先交代一下,jquery ,bootstrap

  • JS组件Bootstrap Select2使用方法解析

    本文总结了组件Bootstrap Select2在一些实际项目中的用法,分享给大家,有需要的朋友可以借鉴一下,少走些弯路,具体内容如下 效果图: 无论是固定方式获取数据还是ajax获取都需要引入bootstrap.js/css 和 select2.js/css及: {{ stylesheet_link('css/bootstrap.css') }} {{ stylesheet_link('css/select2.min.css') }} {{ stylesheet_link('css/font-

随机推荐