国产探花免费观看_亚洲丰满少妇自慰呻吟_97日韩有码在线_资源在线日韩欧美_一区二区精品毛片,辰东完美世界有声小说,欢乐颂第一季,yy玄幻小说排行榜完本

首頁 > 編程 > JavaScript > 正文

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

2019-11-19 15:56:46
字體:
供稿:網(wǎng)友

背景

最近在使用Bootstrap table ,有一個在某一列添加一個下拉列表,并且通過 “getAllSelections”方法獲取所選行的需求,在實現(xiàn)這個功能的時,走了一些彎路,遇到了一些坑。所以今天總結(jié)出來,既是自己的學(xué)習(xí),也分享給大家,希望能夠有些幫助。

如何解決

添加這個下拉列表有以下兩種方法:

  • 利用Column options 中的 formatter 將數(shù)據(jù)轉(zhuǎn)換成下拉列表的形式
  • 使用bootstrap-table拓展中的editable插件

這次主要介紹第一種,基本的思路為:首先通過 bootstrap-table 的Column 配置項中的formatter,將獲取到的數(shù)據(jù)轉(zhuǎn)換為包含數(shù)據(jù)的 select 控件。然后根據(jù)用戶選擇項更新對應(yīng)單元格數(shù)據(jù),最后通過getallselection方法獲取所選行數(shù)據(jù)。

formatter,其配置項為function,有三個參數(shù):(value,row,index)

formatter: setSelectfunction 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;}

到這里,下拉列表已經(jīng)可以顯示出來了,但是如果直接使用 getallselection 方法獲取所選內(nèi)容會有問題:獲取到的數(shù)據(jù)是默認表格初始化加載的內(nèi)容,并不是重新選擇的內(nèi)容。

  bootstrap-table是一個jQuery插件,直接在html上面修改是獲取不到的,要修改需要通過它自己的方法。bootstrap-table 在Methods 中提供了一個updateCell的方法。

updateCell ,包含了三個參數(shù)(index,field,value),在某一行的某一列更新value。

$('#table').bootstrapTable('updateCell', {  index: indexSelected,  field: 'name',  value: valueSelected })

events

完成了下拉列表的顯示,有了更新單元格值的方法,還需要做的是為下拉列表的選擇綁定事件,實現(xiàn)下拉列表選擇->改變單元格值。

我們可以在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 })});

但是經(jīng)過測試,發(fā)現(xiàn)$(“.ss”).change()只是在頁面加載后第一次選擇可以觸發(fā),后來在bootstrap-table的文檔中發(fā)現(xiàn)了events項,可以監(jiān)聽單元格事件,和formatter 配合著用。

events: {'change .ss': function (e, value, row, index) {}};//value是當前單元格的值,row是當前行,index是當前行的索引值
  • change 傳遞的是jQuery事件
  • .ss 是jQuery的類選擇器

上面是在JSFiddle做的一個小Demo,有源碼和顯示效果,可以參考一下。

小結(jié)

有的時候,我們會遇到一個別人沒有遇到過的問題,并沒有在網(wǎng)上找到直接的解決方案。那么一定要去關(guān)注他的官方文檔,甚至可以直接聯(lián)系作者。

還有以bootstrap-table來說,它本身是一個jQuery插件,如果理解了一個jQuery插件具體是如何工作的,對于解決問題會是非常有幫助的。

以上所述是小編給大家介紹的Bootstrap Table 在指定列中添加下拉框控件并獲取所選值,希望對大家有所幫助,如果大家有任何疑問請給我留言,小編會及時回復(fù)大家的。在此也非常感謝大家對武林網(wǎng)網(wǎng)站的支持!

發(fā)表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發(fā)表
主站蜘蛛池模板: 博野县| 措勤县| 绍兴县| 兴国县| 平原县| 通许县| 榆树市| 石城县| 阿荣旗| 旬阳县| 平泉县| 佳木斯市| 璧山县| 清水河县| 额敏县| 甘谷县| 五大连池市| 和硕县| 阿克陶县| 娄底市| 隆尧县| 德格县| 红原县| 蕉岭县| 沙坪坝区| 正镶白旗| 民权县| 吐鲁番市| 肃北| 固安县| 土默特左旗| 南乐县| 延津县| 新建县| 龙口市| 定襄县| 天门市| 三台县| 左贡县| 庆安县| 石狮市|