全网整合营销服务商

电脑端+手机端+微信端=数据同步管理

免费咨询热线:400-708-3566

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

背景

最近在使用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 在指定列中添加下拉框控件并获取所选值,希望对大家有所帮助,如果大家有任何疑问请给我留言,小编会及时回复大家的。在此也非常感谢大家对网站的支持!


# bootstrap  # table  # 下拉框控件  # Bootstrap Table列宽拖动的方法  # bootstrap table列和表头对不齐的解决方法  # Bootstrap Table使用方法详解  # JS组件Bootstrap Table使用方法详解  # bootstrap table实现单击单元格可编辑功能  # bootstrap table单元格新增行并编辑  # 值得分享的bootstrap table实例  # 值得分享的轻量级Bootstrap Table表格插件  # 基于BootStrap的Metronic框架实现页面链接收藏夹功能按钮移动收藏记录(使用Sortab  # Bootstrap table列上下移动效果  # 单元格  # 所选  # 自己的  # 的是  # 是一个  # 给大家  # 绑定  # 小编  # 在某一  # 加载  # 文档  # 是在  # 会有  # 走了  # 在此  # 两种  # 我们可以  # 要做  # 可以直接  # 解决问题 


相关文章: c++怎么用jemalloc c++替换默认内存分配器【性能】  建站主机空间推荐 高性价比配置与快速部署方案解析  c# Task.Yield 的作用是什么 它和Task.Delay(1)有区别吗  如何在IIS服务器上快速部署高效网站?  定制建站方案优化指南:企业官网开发与建站费用解析  建站主机与虚拟主机有何区别?如何选择最优方案?  如何快速搭建高效简练网站?  网站制作说明怎么写,简述网页设计的流程并说明原因?  建站之星×万网:智能建站系统+自助建站平台一键生成  如何通过VPS建站无需域名直接访问?  免费制作统计图的网站有哪些,如何看待现如今年轻人买房难的情况?  网站制作培训多少钱一个月,网站优化seo培训课程有哪些?  官网网站制作腾讯审核要多久,联想路由器newifi官网  高防服务器如何保障网站安全无虞?  招商网站制作流程,网站招商广告语?  建站168自助建站系统:快速模板定制与SEO优化指南  高防服务器租用指南:配置选择与快速部署攻略  车管所网站制作流程,交警当场开简易程序处罚决定书,在交警网站查询不到怎么办?  广州营销型建站服务商推荐:技术优势与SEO优化解析  武汉外贸网站制作公司,现在武汉外贸前景怎么样啊?  如何在阿里云完成域名注册与建站?  贸易公司网站制作流程,出口贸易网站设计怎么做?  如何快速使用云服务器搭建个人网站?  如何高效完成自助建站业务培训?  已有域名和空间如何快速搭建网站?  如何用IIS7快速搭建并优化网站站点?  网站建设制作、微信公众号,公明人民医院怎么在网上预约?  网页设计与网站制作内容,怎样注册网站?  北京营销型网站制作公司,可以用python做一个营销推广网站吗?  宝塔新建站点为何无法访问?如何排查?  如何解决ASP生成WAP建站中文乱码问题?  赚钱网站制作软件,建一个网站怎样才能赚钱?是如何盈利的?  上海制作企业网站有哪些,上海有哪些网站可以让企业免费发布招聘信息?  公司网站设计制作厂家,怎么创建自己的一个网站?  网站制作需要会哪些技术,建立一个网站要花费多少?  建站之星2.7模板快速切换与批量管理功能操作指南  娃派WAP自助建站:免费模板+移动优化,快速打造专业网站  非常酷的网站设计制作软件,酷培ai教育官方网站?  网站制作难吗安全吗,做一个网站需要多久时间?  如何用免费手机建站系统零基础打造专业网站?  历史网站制作软件,华为如何找回被删除的网站?  内部网站制作流程,如何建立公司内部网站?  西安专业网站制作公司有哪些,陕西省建行官方网站?  Swift中循环语句中的转移语句 break 和 continue  股票网站制作软件,网上股票怎么开户?  *服务器网站为何频现安全漏洞?  建站之星如何实现网站加密操作?  简历在线制作网站免费,免费下载个人简历的网站是哪些?  Dapper的Execute方法的返回值是什么意思 Dapper Execute返回值详解  jQuery 常见小例汇总 

您的项目需求

*请认真填写需求信息,我们会在24小时内与您取得联系。