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 相关文章推荐
动态调用CSS文件的JS代码
Jul 29 Javascript
javascript禁用Tab键脚本实例
Nov 22 Javascript
判断iframe里的页面是否加载完成
Jun 06 Javascript
Javascript遍历table中的元素示例代码
Jul 08 Javascript
Vue.js快速入门教程
Sep 07 Javascript
JS实现根据用户输入分钟进行倒计时功能
Nov 14 Javascript
详谈AngularJs 控制器、数据绑定、作用域
Jul 09 Javascript
jqueryUI tab标签页代码分享
Oct 09 jQuery
JQuery中queue方法用法示例
Jan 31 jQuery
基于Angular 8和Bootstrap 4实现动态主题切换的示例代码
Feb 11 Javascript
JavaScript中继承原理与用法实例入门
May 09 Javascript
React-vscode使用jsx语法的问题及解决方法
Jun 21 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 论坛采集程序 模拟登陆,抓取页面 实现代码
2009/07/09 PHP
PHP json_encode中文乱码问题的解决办法
2013/09/09 PHP
php中print(),print_r(),echo()的区别详解
2014/12/01 PHP
Laravel5.5 视图 - 创建视图和数据传递示例
2019/10/21 PHP
jQuery 使用手册(六)
2009/09/23 Javascript
javascript加号&quot;+&quot;的二义性说明
2013/03/04 Javascript
js中confirm实现执行操作前弹出确认框的方法
2014/11/01 Javascript
vue高德地图之玩转周边
2017/06/16 Javascript
微信小程序如何获取openid及用户信息
2018/01/26 Javascript
vue计算属性和监听器实例解析
2018/05/10 Javascript
微信小程序实现顶部下拉菜单栏
2018/11/04 Javascript
laydate如何根据开始时间或者结束时间限制范围
2018/11/15 Javascript
Vue3新特性之在Composition API中使用CSS Modules
2020/07/13 Javascript
python获取指定路径下所有指定后缀文件的方法
2015/05/26 Python
python爬虫headers设置后无效的解决方法
2017/10/21 Python
Python进程间通信Queue实例解析
2018/01/25 Python
Python进阶之递归函数的用法及其示例
2018/01/31 Python
python获取酷狗音乐top500的下载地址 MP3格式
2018/04/17 Python
对django中foreignkey的简单使用详解
2019/07/28 Python
python实现的分析并统计nginx日志数据功能示例
2019/12/21 Python
python读取xml文件方法解析
2020/08/04 Python
基于HTML5的齿轮动画特效
2016/02/29 HTML / CSS
大专应届生个人的自我评价
2013/11/21 职场文书
英文简历中的自我评价用语
2013/12/09 职场文书
市场营销专业个人求职信范文
2013/12/14 职场文书
学校采购员岗位职责
2014/01/02 职场文书
本科生的职业生涯规划范文
2014/01/09 职场文书
中学生评语大全
2014/04/18 职场文书
乡镇党员干部四风对照检查材料思想汇报
2014/09/27 职场文书
具结保证书
2015/01/17 职场文书
杭州西湖英语导游词
2015/02/03 职场文书
亮剑观后感300字
2015/06/05 职场文书
大学开学典礼新闻稿
2015/07/17 职场文书
七年级作文之英语老师
2019/10/28 职场文书
React配置子路由的实现
2021/06/03 Javascript
详解Redis在SpringBoot工程中的综合应用
2021/10/16 Redis