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 相关文章推荐
Google Map Api和GOOGLE Search Api整合实现代码
Jul 18 Javascript
javascript 主动派发事件总结
Aug 09 Javascript
使用jQueryMobile实现滑动翻页效果的方法
Feb 04 Javascript
JavaScript中eval()函数用法详解
Dec 14 Javascript
js如何判断输入字符串长度
Dec 16 Javascript
jquery解析XML及获取XML节点名称的实现代码
May 18 Javascript
JS 插件dropload下拉刷新、上拉加载使用小结
Apr 13 Javascript
jQuery实现腾讯信用界面(自制刻度尺)样式
Aug 15 jQuery
react.js组件实现拖拽复制和可排序的示例代码
Aug 20 Javascript
vue 实现滚动到底部翻页效果(pc端)
Jul 31 Javascript
vuex根据不同的用户权限展示不同的路由列表功能
Sep 20 Javascript
vue+element获取el-table某行的下标,根据下标操作数组对象方式
Aug 07 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
第十四节 命名空间 [14]
2006/10/09 PHP
Yii PHP Framework实用入门教程(详细介绍)
2013/06/18 PHP
php数据类型判断函数有哪些
2013/09/23 PHP
网页上facebook分享功能具体实现
2014/01/26 PHP
从零开始学YII2框架(三)扩展插件yii2-gird
2014/08/20 PHP
PHP获取当前日期和时间及格式化方法参数
2015/05/11 PHP
thinkphp 抓取网站的内容并且保存到本地的实例详解
2017/08/25 PHP
如何让PHP编码更加好看利于阅读
2019/05/12 PHP
PHP常用字符串输出方法分析(echo,print,printf及sprintf)
2021/03/09 PHP
iis6+javascript Add an Extension File
2007/06/13 Javascript
一段效率很高的for循环语句使用方法
2007/08/13 Javascript
JavaScript 序列化对象实现代码
2009/12/18 Javascript
JQuery Dialog(JS 模态窗口,可拖拽的DIV)
2010/02/07 Javascript
微信小程序商品到详情的实现
2017/06/27 Javascript
详解webpack2+node+react+babel实现热加载(hmr)
2017/08/24 Javascript
React Native react-navigation 导航使用详解
2017/12/01 Javascript
解决VUEX兼容IE上的报错问题
2018/03/01 Javascript
更强大的vue ssr实现预取数据的方式
2019/07/19 Javascript
python排序方法实例分析
2015/04/30 Python
python冒泡排序简单实现方法
2015/07/09 Python
详解python的webrtc库实现语音端点检测
2017/05/31 Python
Python基于回溯法子集树模板解决0-1背包问题实例
2017/09/02 Python
python构建深度神经网络(续)
2018/03/10 Python
python学生管理系统
2019/01/30 Python
css3动画效果小结(推荐)
2016/07/25 HTML / CSS
亚洲在线旅行门户网站:Expedia.com.hk(智游网)
2020/04/14 全球购物
Python文件操作的面试题
2013/06/22 面试题
2014年党务公开方案
2014/05/08 职场文书
2014年银行员工年终自我评价
2014/09/19 职场文书
机关作风建设心得体会
2014/10/22 职场文书
2019年销售人员的职业生涯规划书
2019/03/25 职场文书
聊聊Python中关于a=[[]]*3的反思
2021/06/02 Python
使用Docker容器部署rocketmq单机的全过程
2022/04/03 Servers
海弦WR-800F
2022/04/05 无线电
多线程Spring通过@Scheduled实现定时任务
2022/05/25 Java/Android
vue实现input输入模糊查询的三种方式
2022/08/14 Vue.js