Bootstrap Table 在指定列中添加下拉框控件并获取所选值


Posted in Javascript onJuly 31, 2017

背景

最近在使用Bootstrap table ,有一个在某一列添加一个下拉列表,并且通过 “getAllSelections”方法获取所选行的需求,在实现这个功能的时,走了一些弯路,遇到了一些坑。所以今天总结出来,既是自己的学习,也分享给大家,希望能够有些帮助。

如何解决

添加这个下拉列表有以下两种方法:

  • 利用Column options 中的 formatter 将数据转换成下拉列表的形式
  • 使用bootstrap-table拓展中的editable插件

这次主要介绍第一种,基本的思路为:首先通过 bootstrap-table 的Column 配置项中的formatter,将获取到的数据转换为包含数据的 select 控件。然后根据用户选择项更新对应单元格数据,最后通过getallselection方法获取所选行数据。

formatter,其配置项为function,有三个参数:(value,row,index)

formatter: setSelect
function setSelect(value, row, index) 
{
  var strHtml = "";
  if (value == "Item 1") 
  {
    strHtml = "<select class='ss'><option value='Item 1' selected='selected'>Item 1</option><option value='Item 2'>Item 2</option></select>";
   } 
   else 
   {
    strHtml = "<select class='ss'><option value='Item 1' >Item 1</option><option value='Item 2' selected='selected'>Item 2</option></select>";
   }
   return strHtml;
}

到这里,下拉列表已经可以显示出来了,但是如果直接使用 getallselection 方法获取所选内容会有问题:获取到的数据是默认表格初始化加载的内容,并不是重新选择的内容。

  bootstrap-table是一个jQuery插件,直接在html上面修改是获取不到的,要修改需要通过它自己的方法。bootstrap-table 在Methods 中提供了一个updateCell的方法。

updateCell ,包含了三个参数(index,field,value),在某一行的某一列更新value。

$('#table').bootstrapTable('updateCell', {
  index: indexSelected,
  field: 'name',
  value: valueSelected
 })

events

完成了下拉列表的显示,有了更新单元格值的方法,还需要做的是为下拉列表的选择绑定事件,实现下拉列表选择->改变单元格值。

我们可以在select元素上绑定onchange事件,或者使用jquery的change 事件。

$(".ss").change(function() {
 var indexSelected = $(this).parent().parent()[0].rowIndex - 1;
 var valueSelected = $(this).children('option:selected').val();
 $('#table').bootstrapTable('updateCell', {
  index: indexSelected,
  field: 'name',
  value: valueSelected
 })
});

但是经过测试,发现$(“.ss”).change()只是在页面加载后第一次选择可以触发,后来在bootstrap-table的文档中发现了events项,可以监听单元格事件,和formatter 配合着用。

events: {'change .ss': function (e, value, row, index) {}};
//value是当前单元格的值,row是当前行,index是当前行的索引值
  • change 传递的是jQuery事件
  • .ss 是jQuery的类选择器

上面是在JSFiddle做的一个小Demo,有源码和显示效果,可以参考一下。

小结

有的时候,我们会遇到一个别人没有遇到过的问题,并没有在网上找到直接的解决方案。那么一定要去关注他的官方文档,甚至可以直接联系作者。

还有以bootstrap-table来说,它本身是一个jQuery插件,如果理解了一个jQuery插件具体是如何工作的,对于解决问题会是非常有帮助的。

以上所述是小编给大家介绍的Bootstrap Table 在指定列中添加下拉框控件并获取所选值,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对三水点靠木网站的支持!

Javascript 相关文章推荐
js动态改变select选择变更option的index值示例
Jul 10 Javascript
jQuery 处理页面的事件详解
Jan 20 Javascript
第一次接触Bootstrap框架
Oct 24 Javascript
Vue2.0父子组件传递函数的教程详解
Oct 16 Javascript
JavaScript 异步调用
Oct 25 Javascript
webpack-mvc 传统多页面组件化开发详解
May 07 Javascript
Vue 动态添加路由及生成菜单的方法示例
Jun 20 Javascript
使用vue中的混入mixin优化表单验证插件问题
Jul 02 Javascript
javascript导出csv文件(excel)的方法示例
Aug 25 Javascript
js实现鼠标点击页面弹出自定义文字效果
Dec 24 Javascript
three.js如何实现3D动态文字效果
Mar 03 Javascript
VUE递归树形实现多级列表
Jul 15 Vue.js
vue组件 $children,$refs,$parent的使用详解
Jul 31 #Javascript
Kindeditor单独调用单图上传增加预览功能的实例
Jul 31 #Javascript
Kindeditor单独调用多图上传实例
Jul 31 #Javascript
老生常谈ES6中的类
Jul 31 #Javascript
JS时间控制实现动态效果的实例讲解
Jul 31 #Javascript
JavaScript实现简单的双色球(实例讲解)
Jul 31 #Javascript
深入理解Vue transition源码分析
Jul 30 #Javascript
You might like
用PHP和ACCESS写聊天室(九)
2006/10/09 PHP
php中CI操作多个数据库的代码
2012/07/05 PHP
CodeIgniter框架数据库事务处理的设计缺陷和解决方案
2014/07/25 PHP
PHP利用MySQL保存session的实现思路及示例代码
2014/09/09 PHP
详解php中serialize()和unserialize()函数
2017/07/08 PHP
laravel手动创建数组分页的实现代码
2018/06/07 PHP
实例说明js脚本语言和php脚本语言的区别
2019/04/04 PHP
TP5框架页面跳转样式操作示例
2020/04/05 PHP
javascript css float属性的特殊写法
2008/11/13 Javascript
超简单的jquery的AJAX用法
2010/05/10 Javascript
jquery鼠标停止移动事件
2013/12/21 Javascript
eclipse导入jquery包后报错的解决方法
2014/02/17 Javascript
JavaScript简单修改窗口大小的方法
2015/08/03 Javascript
深入剖析javascript中的exec与match方法
2016/05/18 Javascript
文件上传的几个示例分享【推荐】
2016/12/16 Javascript
JS图片压缩(pc端和移动端都适用)
2017/01/12 Javascript
Bootstrap输入框组件使用详解
2017/06/09 Javascript
微信小程序 自定义Toast实例代码
2017/06/12 Javascript
详解vue2.0 使用动态组件实现 Tab 标签页切换效果(vue-cli)
2017/08/30 Javascript
Vue v-text指令简单使用方法示例
2019/09/19 Javascript
在Vue中使用this.$store或者是$route一直报错的解决
2019/11/08 Javascript
vue随机验证码组件的封装实现
2020/02/19 Javascript
详解JavaScript之Array.reduce源码解读
2020/11/01 Javascript
[01:59][TI9趣味视频] 全明星赛奖励
2019/08/23 DOTA
Django 内置权限扩展案例详解
2019/03/04 Python
Python高级特性——详解多维数组切片(Slice)
2019/11/26 Python
python 字段拆分详解
2019/12/17 Python
Python多线程threading join和守护线程setDeamon原理详解
2020/03/18 Python
浅析Python面向对象编程
2020/07/10 Python
纯CSS3实现绘制各种图形实现代码详细整理
2012/12/26 HTML / CSS
美国购车网站:TrueCar
2016/10/19 全球购物
党员2014两会学习心得体会
2014/03/17 职场文书
工厂搬迁方案
2014/05/11 职场文书
2015年度女工工作总结
2015/10/22 职场文书
优秀范文:读《红岩》有感3篇
2019/10/14 职场文书
Go 语言结构实例分析
2021/07/04 Golang