0

0

Bootstrap-Table 单元格格式化:实现动态下拉选择与数据绑定

DDD

DDD

发布时间:2025-09-28 13:27:40

|

490人浏览过

|

来源于php中文网

原创

Bootstrap-Table 单元格格式化:实现动态下拉选择与数据绑定

本文详细阐述了如何在 bootstrap-table 单元格中动态生成下拉选择框,并根据单元格的原始数据精确设置默认选中值。通过自定义 formatter 函数,文章演示了如何遍历数据源创建选项,并在循环中判断并添加 selected 属性,从而确保交互式表格的正确数据绑定。同时,也指出了实现过程中常见的错误和注意事项。

Bootstrap-Table formatter 函数概述

bootstrap-table 提供了一个强大的 formatter 函数,允许开发者自定义单元格的显示内容。当表格渲染时,formatter 函数会被调用,接收当前单元格的值 (value)、整行数据 (row) 和行索引 (index) 作为参数。该函数的核心职责是返回一个 html 字符串,这个字符串将替换原始单元格的内容。这为在表格中嵌入复杂的交互式元素(如按钮、链接或本文讨论的下拉选择框)提供了极大的灵活性,使得表格不仅能展示数据,还能成为数据输入的界面。

实现动态下拉选择框并设置默认选中值

要在 bootstrap-table 单元格中实现一个动态的下拉选择框 (

  1. 定义选项数据源: 首先,需要一个映射对象来存储下拉框所有可能的选项值及其对应的显示文本。这个对象通常是固定不变的,用于构建下拉框的所有选项。

    const callResults = {
      "79": "Sale Made",
      "335": "Rep will call back",
      "81": "Upsold Device",
      "83": "Outbound Call Needed",
      "337": "Not Interested/Bad Call",
      "739": "Support Call",
      "773": "Dropped Call",
      "775": "RMA",
      "777": "Other"
    };
  2. 创建 在 formatter 函数内部,使用 document.createElement 方法创建一个

    const select = document.createElement("select");
    select.className = "form-control"; // 添加 Bootstrap 样式类
  3. 遍历数据源并创建 遍历 callResults 对象,为每个键值对创建一个

  4. 关键:设置默认选中项: 在创建每个

    for (const [key, text] of Object.entries(callResults)) {
      const option = document.createElement("option");
      option.value = key; // 设置选项的值
      option.text = text; // 设置选项的显示文本
    
      // 比较当前单元格的值与选项的键,如果匹配则设置其为选中状态
      // 注意:这里使用 '==' 进行类型不严格比较,以应对可能的类型差异(如数字字符串与数字)
      if (value == key) {
        option.setAttribute("selected", "true"); // 设置 selected 属性
      }
    
      select.appendChild(option); // 将选项添加到  元素的 outerHTML 返回。bootstrap-table 会将这个 HTML 字符串渲染到单元格中,从而显示带有预选值的下拉选择框。

    return select.outerHTML;

完整示例代码

以下是整合上述逻辑的 callResultFormatter 函数:

/**
 * Bootstrap-Table 单元格格式化函数,用于生成带有预选值的下拉选择框。
 * @param {string|number} value 当前单元格的原始值。
 * @param {object} row 当前行的数据对象。
 * @param {number} index 当前行的索引。
 * @returns {string} 包含下拉选择框的 HTML 字符串。
 */
function callResultFormatter(value, row, index) {
    // 定义下拉框的选项数据源,键为选项值,值为显示文本
    const callResults = {
        "79": "Sale Made",
        "335": "Rep will call back",
        "81": "Upsold Device",
        "83": "Outbound Call Needed",
        "337": "Not Interested/Bad Call",
        "739": "Support Call",
        "773": "Dropped Call",
        "775": "RMA",
        "777": "Other"
    };

    // 创建  中
    for (const [key, text] of Object.entries(callResults)) {
        const option = document.createElement("option");
        option.value = key; // 设置选项的实际值
        option.text = text; // 设置选项的显示文本

        // 检查当前单元格的原始值是否与当前选项的键匹配
        // 使用 '==' 进行非严格相等比较,以处理可能存在的类型差异(例如,value是字符串"79",key是数字79)
        if (value == key) {
            option.setAttribute("selected", "true"); // 如果匹配,则设置该选项为默认选中状态
        }

        select.appendChild(option); // 将创建好的选项添加到下拉框中
    }

    // 返回  元素及其所有子元素的 HTML 表示。返回其他类型(如 DOM 对象本身)将不会被 bootstrap-table 正确渲染。



总结

通过 bootstrap-table 提供的 formatter 函数,我们可以非常灵活地在表格单元格中嵌入复杂的交互式组件。要实现一个动态的下拉选择框并根据单元格数据预选,关键在于在 formatter 函数内部,针对每个选项创建时进行条件判断,并使用 option.setAttribute("selected", "true") 正确地设置选中状态。理解这些实现细节和常见的陷阱,将有助于构建功能更强大、用户体验更佳的 bootstrap-table 应用。

相关专题

更多
css
css

css是层叠样式表,用来表现HTML或XML等文件样式的计算机语言,不仅可以静态地修饰网页,还可以配合各种脚本语言动态地对网页各元素进行格式化。php中文网还为大家带来html的相关下载资源、相关课程以及相关文章等内容,供大家免费下载使用。

524

2023.06.15

css居中
css居中

css居中:1、通过“margin: 0 auto; text-align: center”实现水平居中;2、通过“display:flex”实现水平居中;3、通过“display:table-cell”和“margin-left”实现居中。本专题为大家提供css居中的相关的文章、下载、课程内容,供大家免费下载体验。

263

2023.07.27

css如何插入图片
css如何插入图片

cssCSS是层叠样式表(Cascading Style Sheets)的缩写。它是一种用于描述网页或应用程序外观和样式的标记语言。CSS可以控制网页的字体、颜色、布局、大小、背景、边框等方面,使得网页的外观更加美观和易于阅读。php中文网给大家带来了相关的教程以及文章,欢迎大家前来阅读学习。

758

2023.07.28

css超出显示...
css超出显示...

在CSS中,当文本内容超出容器的宽度或高度时,可以使用省略号来表示被隐藏的文本内容。本专题为大家提供css超出显示...的相关文章,相关教程,供大家免费体验。

539

2023.08.01

css字体颜色
css字体颜色

CSS中,字体颜色可以通过属性color来设置,用于控制文本的前景色,字体颜色在网页设计中起到很重要的作用,具有以下表现作用:1、提升可读性;2、强调重点信息;3、营造氛围和美感;4、用于呈现品牌标识或与品牌形象相符的风格。

761

2023.08.10

什么是css
什么是css

CSS是层叠样式表(Cascading Style Sheets)的缩写,是一种用于描述网页(或其他基于 XML 的文档)样式与布局的标记语言,CSS的作用和意义如下:1、分离样式和内容;2、页面加载速度优化;3、实现响应式设计;4、确保整个网站的风格和样式保持统一。

605

2023.08.10

css三角形怎么写
css三角形怎么写

CSS可以通过多种方式实现三角形形状,本专题为大家提供css三角形怎么写的相关教程,大家可以免费体验。

560

2023.08.21

css设置文字颜色
css设置文字颜色

CSS(层叠样式表)可以用于设置文字颜色,这样做有以下好处和优势:1、增加网页的可视化效果;2、突出显示某些重要的信息或关键字;3、增强品牌识别度;4、提高网页的可访问性;5、引起不同的情感共鸣。

396

2023.08.22

PS使用蒙版相关教程
PS使用蒙版相关教程

本专题整合了ps使用蒙版相关教程,阅读专题下面的文章了解更多详细内容。

23

2026.01.19

热门下载

更多
网站特效
/
网站源码
/
网站素材
/
前端模板

精品课程

更多
相关推荐
/
热门推荐
/
最新课程
Sass 教程
Sass 教程

共14课时 | 0.8万人学习

Bootstrap 5教程
Bootstrap 5教程

共46课时 | 2.9万人学习

CSS教程
CSS教程

共754课时 | 21.1万人学习

关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送

Copyright 2014-2026 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号