Bootstrap Table批量添加,删除行

本文详细介绍了如何在Bootstrap Table中实现批量添加和删除行的功能,通过JavaScript和HTML的结合,实现高效且用户友好的数据操作体验。

Bootstrap Table批量添加,删除行

  <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/css/bootstrap-theme.min.css">
    <link rel="stylesheet"href="https://unpkg.com/bootstrap-table@1.15.3/dist/bootstrap-table.min.css">

    <div class="table-box" style="margin: 20px;">
        <div id="toolbar">
            <button id="add" class="btn btn-default">add</button>
            <button id="remove" class="btn btn-default">remove</button>
            <button id="getTableData" class="btn btn-default">getTableData</button>
        </div>
        <table id="table"></table>
    </div>

    <script src="https://code.jquery.com/jquery-3.1.1.min.js"></script>
    <!-- 最新的 Bootstrap 核心 JavaScript 文件 -->
    <script src="https://stackpath.bootstrapcdn.com/bootstrap/3.4.1/js/bootstrap.min.js"></script>
    <script src="https://unpkg.com/bootstrap-table@1.15.3/dist/bootstrap-table.min.js"></script>
js部分
$(function() {`在这里插入代码片`
    let $table = $('#table');
    let $button = $('#add');
    let $remove = $('#remove');
    let $getTableData = $('#getTableData');
    //第N个的idx是N
    $button.click(function() {
        add()
    });

function add(){
    //获取选中的data
    //JSON.stringify($table.bootstrapTable('getData'))
    let count=$table.bootstrapTable('getData').length;
    $table.bootstrapTable('insertRow', {
        index: count,
        row: {
            id: count,
            name2: '',
            price2: ''
        }
    });
}
function remove(){
    var rows = $('#table').bootstrapTable('getSelections');//获取选中行
    if (rows.length == 0) {
        alert("请选择要删除的数据");
        return;
    }
    var indexs=[];//获取选中的数组
    for(var i=0;i<rows.length;i++){
        indexs[i]=rows[i].id;
    }
    console.log(rows,indexs)
    //删除
    $('#table').bootstrapTable('remove', {
        field:'id',
        values:indexs
    });
}
    $remove.click(function() {
        console.log(111)
        remove();
    });
  
    $table.bootstrapTable({
        url: '/',
        clickEdit: true,
        columns: [{
            checkbox: true
        }, {
            field: 'id',
            title: 'Item ID',
            visible:false//添加隐藏列
        }, {
            field: 'name2',
            title: 'Item Name'
        }, {
            field: 'price2',
            title: 'Item Price'
        }, ],
        /**
         * @param {点击列的 field 名称} field
         * @param {点击列的 value 值} value
         * @param {点击列的整行数据} row
         * @param {td 元素} $element
         */

        onClickCell: function(field, value, row, $element) {
            $element.attr('contenteditable', true);
            $element.blur(function() {
                let index = $element.parent().data('index');
                let tdValue = $element.html();

                saveData(index, field, tdValue);
            })
        },onCheck:function(row,$element){//获取选中时的row
            console.log(row,$element)
            index = $element.data('index');
            console.log(index)
        },onUncheck:function(row,$element){
            console.log('del',row,$element)
            index = $element.data('index');
            console.log('del',index)
        },onLoadSuccess(){
            console.log(33333)
            add()
        },onLoadError(){
            console.log(33333)
            add()
        },onCallback(){
            console.log(2222222)
            add()
        },onErrorCallback(){
            console.log(1111111111)
            add()
        }
    });
    add()//不走ajax的话
    function saveData(index, field, value) {
        $table.bootstrapTable('updateCell', {
            index: index,       //行索引
            field: field,       //列名
            value: value        //cell值
        })
    }

});

<think>首先,用户的问题是:“我想查找在BootstrapTable添加checkbox框的方法 请问BootstrapTable添加checkbox框的方法”。基于系统级指令,我需要使用中文回答,并且确保回答结构清晰。 用户提供了几个引用,我需要参考这些引用: - 引用[1]: 提到通过设置columns数组添加checkbox,并使用hideColumn来控制checkbox的显示。 - 引用[2]: 讨论复选框默认选中,使用formatter函数。 - 引用[3]: 关于表格内编辑,提到onClickCell方法。 - 引用[4]: 表头添加搜索框,但似乎不直接相关。 - 引用[5]: 使用checkbox进删除操作,处理选中的。 用户的问题核心是添加checkbox框的方法,所以我应该聚焦在如何添加checkbox上。 关键点来自引用[1]和[引用2]: - 在BootstrapTable添加checkbox,需要在columns定义中添加一个字段,设置checkbox: true。 - 例如:columns: [{ field: 'column', checkbox: true }] - 然后,可以通过bootstrapTable方法来控制其显示或隐藏,如hideColumn。 引用[2]提到了使用formatter来自定义复选框的状态。 我应该结构化我的回答: 1. **介绍方法**:如何使用columns定义添加checkbox。 2. **详细步骤**:给出示例代码。 3. **相关功能**:如如何默认选中,如何控制显示等。 4. **生成相关问题**:根据系统指令,需要在回答末尾生成相关问题。 确保使用中文回答。 回答结构: - 先直接回答添加checkbox的方法。 - 然后提供代码示例。 - 最后生成相关问题。 参考引用: - [^1] 提到添加checkbox列并控制显示。 - [^2] 提到默认选中和formatter。 - [^5] 提到如何处理选中的。 所以,在回答中引用这些。 代码格式:如指令所说,独立代码块使用```...```。 系统指令要求:内数学表达式用$...$,但这里不需要数学表达式,所以忽略。 最后,自然地添加引用标识。 生成相关问题:基于添加checkbox的主题,生成相关的问题,如: 1. 如何默认选中某些checkbox? 2. 如何获取选中的? 3. 如何自定义checkbox的为? 完整回答框架: 1. 开头解释添加checkbox的方法。 2. 给出代码示例。 3. 解释如何控制显示(参考引用[1])。 4. 提及如何默认选中(参考引用[2])。 5. 简要说明如何处理选中的(参考引用[5])。 6. 结尾添加相关问题。 </think>### BootstrapTable 添加checkbox框的方法 在BootstrapTable添加checkbox框是一个常见的需求,主要用于选择功能(如多选删除批量操作)。基于您提供的引用[^1]和[^2],核心方法是通过配置columns数组来实现,其中添加一个字段并设置checkbox: true。以下是详细步骤和代码示例,确保方法真实可靠(参考官方文档和引用内容)。 #### 1. **基本配置添加checkbox** 在初始化BootstrapTable时,在columns选项中添加一个字段,设置field属性和checkbox: true。field属性可以是任意字符串,但通常用于存储选中状态。例如: ```javascript $('#tableName').bootstrapTable({ columns: [{ field: 'select', // 字段名,用于标识checkbox checkbox: true // 设置为true表示启用checkbox }, { field: 'id', title: 'ID' }, { field: 'name', title: '名称' }], data: [ // 示例数据 { id: 1, name: '项目A' }, { id: 2, name: '项目B' } ] }); ``` - 这样,表格左侧会自动添加一列checkbox框。 - 引用[^1]提到,通过这种方法定义的checkbox列,可以使用bootstrapTable方法控制其显示或隐藏,例如隐藏checkbox列: `$("#tableName").bootstrapTable('hideColumn', 'select')`。 #### 2. **自定义checkbox为(可选)** - **默认选中某些**:如引用[^2]所述,可以使用formatter函数来设置默认选中状态。formatter函数返回一个布尔值控制是否选中。 ```javascript columns: [{ field: 'select', checkbox: true, formatter: function(value, row, index) { // 示例:如果row.status为1,则默认选中 return row.status === 1; // 返回true表示选中,false表示不选中 } }] ``` - **处理选中的事件**:可以使用BootstrapTable的事件如check.bs.table或uncheck.bs.table来响应选择变化。 ```javascript $('#tableName').on('check.bs.table', function (e, row) { console.log('选中:', row); // 处理单个选中事件 }); ``` #### 3. **获取选中的并处理** 参考引用[^5],可以通过bootstrapTable方法获取所有选中的,常用于批量操作场景(如删除)。示例代码如下: ```javascript function deleteSelected() { var selectedRows = $('#tableName').bootstrapTable('getSelections'); // 获取选中的对象数组 if (selectedRows.length === 0) { alert("请选择需要删除的记录"); return; } else { var ids = selectedRows.map(function(row) { return row.id; }).join(','); // 提取ID并拼接 console.log('待删除IDs:', ids); // 这里可添加AJAX请求删除操作 } } ``` - 这个方法使用了getSelections API,确保了高效处理选中数据[^5]。 #### 4. **注意事项** - **控制checkbox显示**:如引用[^1]所示,调用hideColumn或showColumn动态切换checkbox列的可见性。 - **兼容性**:此方法适用于BootstrapTable v1.x及更高版本。 - **常见问题**: - 如果checkbox不显示,检查field是否与数据源冲突。 - 使用formatter时,确保函数逻辑正确,避免影响渲染性能。 通过以上步骤,您可以轻松在BootstrapTable添加和管理checkbox框。如果需要进一步优化(如内编辑),引用[^3]提到的onClickCell方法也可结合使用,但这超出了本问题的核心范围。 ### 相关问题 1. 如何实现BootstrapTable中checkbox的默认选中功能? 2. 如何在BootstrapTable中获取并处理多个选中的数据? 3. BootstrapTable的checkbox列如何支持动态显示或隐藏?
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值