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 在指定列中添加下拉框控件并获取所选值,希望对大家有所帮助,如果大家有任何疑问请给我留言,长沙网络推广会及时回复大家的。在此也非常感谢大家对狼蚁SEO网站的支持!
编程语言
- 如何快速学会编程 如何快速学会ug编程
- 免费学编程的app 推荐12个免费学编程的好网站
- 电脑怎么编程:电脑怎么编程网咯游戏菜单图标
- 如何写代码新手教学 如何写代码新手教学手机
- 基础编程入门教程视频 基础编程入门教程视频华
- 编程演示:编程演示浦丰投针过程
- 乐高编程加盟 乐高积木编程加盟
- 跟我学plc编程 plc编程自学入门视频教程
- ug编程成航林总 ug编程实战视频
- 孩子学编程的好处和坏处
- 初学者学编程该从哪里开始 新手学编程从哪里入
- 慢走丝编程 慢走丝编程难学吗
- 国内十强少儿编程机构 中国少儿编程机构十强有
- 成人计算机速成培训班 成人计算机速成培训班办
- 孩子学编程网上课程哪家好 儿童学编程比较好的
- 代码编程教学入门软件 代码编程教程