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 相关文章推荐
Javascript模块模式分析
May 16 Javascript
一个tab标签切换效果代码
Mar 27 Javascript
JS判断是否为数字,是否为整数,是否为浮点数的代码
Apr 24 Javascript
JS中confirm,alert,prompt函数区别分析
Jan 17 Javascript
jquery动态加载js三种方法实例
Aug 03 Javascript
个人总结的一些JavaScript技巧、实用函数、简洁方法、编程细节
Jun 10 Javascript
jQuery中DOM节点的删除方法总结(超全面)
Jan 22 Javascript
利用jQuery实现滑动开关按钮效果(附demo源码下载)
Feb 07 Javascript
微信小程序的生命周期的详解
Oct 19 Javascript
JavaScript创建、读取和删除cookie
Sep 03 Javascript
weui上传多图片,压缩,base64编码的示例代码
Jun 22 Javascript
详解微信小程序(Taro)手动埋点和自动埋点的实现
Mar 02 Javascript
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 pack与unpack 摸板字符字符含义
2009/10/29 PHP
PHP中使用memcache存储session的三种配置方法
2014/04/05 PHP
laravel框架路由分组,中间件,命名空间,子域名,路由前缀实例分析
2020/02/18 PHP
深入理解PHP+Mysql分布式事务与解决方案
2020/12/03 PHP
js onpropertychange输入框 事件获取属性
2009/03/26 Javascript
一行代码实现纯数据json对象的深度克隆实现思路
2013/01/09 Javascript
jQuery 设置 CSS 属性示例介绍
2014/01/16 Javascript
javascript中style.left和offsetLeft的用法说明
2014/03/07 Javascript
用jquery的方法制作一个简单的导航栏
2014/06/23 Javascript
js中回调函数的学习笔记
2014/07/31 Javascript
javascript中数组的定义及使用实例
2015/01/21 Javascript
jQuery实现可用于博客的动态滑动菜单完整实例
2015/09/17 Javascript
jQuery实现的tab标签切换效果示例
2016/09/05 Javascript
Angular指令封装jQuery日期时间插件datetimepicker实现双向绑定示例
2017/01/22 Javascript
Node.js Express 框架 POST方法详解
2017/01/23 Javascript
DOM事件探秘篇
2017/02/15 Javascript
NodeJs搭建本地服务器之使用手机访问的实例讲解
2018/05/12 NodeJs
对Vue2 自定义全局指令Vue.directive和指令的生命周期介绍
2018/08/30 Javascript
layui实现数据表格table分页功能(ajax异步)
2019/07/27 Javascript
javascript设计模式 ? 解释器模式原理与用法实例分析
2020/04/17 Javascript
javascript 代码是如何被压缩的示例代码
2020/05/06 Javascript
JS寄快递地址智能解析的实现代码
2020/07/16 Javascript
通过vue刷新左侧菜单栏操作
2020/08/06 Javascript
浅谈django orm 优化
2018/08/18 Python
对python中类的继承与方法重写介绍
2019/01/20 Python
对pyqt5多线程正确的开启姿势详解
2019/06/14 Python
python中for循环变量作用域及用法详解
2019/11/05 Python
洲际酒店集团美国官网:IHG美国
2017/11/16 全球购物
服装设计专业自荐书范文
2013/12/30 职场文书
专家推荐信模板
2014/05/09 职场文书
学习雷锋演讲稿
2014/05/10 职场文书
行政专员岗位职责说明书
2014/07/30 职场文书
超市开业庆典活动策划方案
2014/09/15 职场文书
财务会计岗位职责
2015/02/03 职场文书
2015年销售员工作总结范文
2015/04/07 职场文书
德生2P3收音机开箱评测
2022/04/30 无线电