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函数(json)附详细说明
May 25 Javascript
javascript之typeof、instanceof操作符使用探讨
May 19 Javascript
Javascript中arguments对象详解
Oct 22 Javascript
解决ueditor jquery javascript 取值问题
Dec 30 Javascript
JS JQUERY实现滚动条自动滚到底的方法
Jan 09 Javascript
javascript实现获取服务器时间
May 19 Javascript
如何用angularjs制作一个完整的表格
Jan 21 Javascript
js+css3制作时钟特效
Oct 16 Javascript
微信小程序视图控件与bindtap之间的问题的解决
Apr 08 Javascript
vue列表单项展开收缩功能之this.$refs的详解
May 05 Javascript
ES2020 已定稿,真实场景案例分析
May 25 Javascript
微信小程序入门之指南针
Oct 22 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中如何实现常用邮箱的基本判断
2014/01/07 PHP
php阻止页面后退的方法分享
2014/02/17 PHP
PHP中调用SVN命令更新网站方法
2015/01/07 PHP
将jQuery应用于login页面的问题及解决
2009/10/17 Javascript
Javascript insertAfter() 实现函数代码
2011/10/12 Javascript
Node.js实现Excel转JSON
2015/04/24 Javascript
Nodejs Express4.x开发框架随手笔记
2015/11/23 NodeJs
详解javascript事件绑定使用方法
2016/10/20 Javascript
原生js二级联动效果
2017/06/20 Javascript
JS获取填报扩展单元格控件的值的解决办法
2017/07/14 Javascript
在页面中引入js的两种方法(推荐)
2017/08/29 Javascript
vue slot 在子组件中显示父组件传递的模板
2018/03/02 Javascript
NestJs 静态目录配置详解
2019/03/12 Javascript
js的Object.assign用法示例分析
2020/03/05 Javascript
[02:07]TI9显影之尘系列 - Vici Gaming
2019/08/20 DOTA
[45:16]完美世界DOTA2联赛PWL S3 Magma vs Phoenix 第一场 12.12
2020/12/16 DOTA
Python入门_学会创建并调用函数的方法
2017/05/16 Python
Python打印输出数组中全部元素
2018/03/13 Python
Selenium元素的常用操作方法分析
2018/08/10 Python
Python中利用LSTM模型进行时间序列预测分析的实现
2019/07/26 Python
Python3批量移动指定文件到指定文件夹方法示例
2019/09/02 Python
Python3.x+pyqtgraph实现数据可视化教程
2020/03/14 Python
浅谈多卡服务器下隐藏部分 GPU 和 TensorFlow 的显存使用设置
2020/06/30 Python
Move Free官方海外旗舰店:美国骨关节健康专业品牌
2017/12/06 全球购物
某公司的.net工程师面试题笔试题
2013/11/22 面试题
英文简历中的自我评价用语
2013/12/09 职场文书
竞聘书格式及范文
2014/03/31 职场文书
会计学毕业生求职信
2014/06/25 职场文书
工商管理自荐书
2014/07/06 职场文书
2014年乡镇人大工作总结
2014/11/25 职场文书
个人租房协议书
2014/11/28 职场文书
离婚协议书怎么写
2015/01/26 职场文书
毕业证明书
2015/06/19 职场文书
Python爬虫之爬取某文库文档数据
2021/04/21 Python
Django程序的优化技巧
2021/04/29 Python
Python使用psutil库对系统数据进行采集监控的方法
2021/08/23 Python