溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊(cè)×
其他方式登錄
點(diǎn)擊 登錄注冊(cè) 即表示同意《億速云用戶服務(wù)條款》

實(shí)現(xiàn)bootstrap-table 表格行內(nèi)編輯的方法

發(fā)布時(shí)間:2020-07-08 14:46:02 來源:億速云 閱讀:1400 作者:Leah 欄目:web開發(fā)

本篇文章給大家分享的是有關(guān)bootstrap-table 表格行內(nèi)編輯實(shí)現(xiàn)方法,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。

                                                           實(shí)現(xiàn)bootstrap-table 表格行內(nèi)編輯的方法

這篇文章向大家介紹一下如何使用bootstrap table插件實(shí)現(xiàn)表格的行內(nèi)編輯功能。

先放一張效果圖:

實(shí)現(xiàn)bootstrap-table 表格行內(nèi)編輯的方法

應(yīng)用場(chǎng)景

之前的項(xiàng)目也是采用bootstrap table,添加和修改數(shù)據(jù)都是通過模態(tài)框來編輯的,后來有了點(diǎn)擊行來編輯和新增的需求,于是乎試試……

html

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

script

$(function() {
    let $table = $('#table');
    let $button = $('#button');
    let $getTableData = $('#getTableData');

    $button.click(function() {
        $table.bootstrapTable('insertRow', {
            index: 0,
            row: {
                id: '',
                name: '',
                price: ''
            }
        });
    });

    $table.bootstrapTable({
        url: 'data2.json',
        toolbar: '#toolbar',
        clickEdit: true,
        showToggle: true,
        pagination: true,       //顯示分頁條
        showColumns: true,
        showPaginationSwitch: true,     //顯示切換分頁按鈕
        showRefresh: true,      //顯示刷新按鈕
        //clickToSelect: true,  //點(diǎn)擊row選中radio或CheckBox
        columns: [{
            checkbox: true
        }, {
            field: 'id',
            title: 'Item ID'
        }, {
            field: 'name',
            title: 'Item Name'
        }, {
            field: 'price',
            title: 'Item Price'
        }, ],
        /**
         * @param {點(diǎn)擊列的 field 名稱} field
         * @param {點(diǎn)擊列的 value 值} value
         * @param {點(diǎn)擊列的整行數(shù)據(jù)} 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);
            })
        }
    });

    $getTableData.click(function() {
        alert(JSON.stringify($table.bootstrapTable('getData')));
    });

    function saveData(index, field, value) {
        $table.bootstrapTable('updateCell', {
            index: index,       //行索引
            field: field,       //列名
            value: value        //cell值
        })
    }

});

實(shí)現(xiàn)原理

通過bootstrap table自帶的 onClickCell 方法,點(diǎn)擊 td 添加 contenteditable 屬性(ps: 使元素可編輯),于是 td 元素具有了類似于文本框的 focus 和 blur 事件,用戶點(diǎn)擊 td 獲取焦點(diǎn),編輯完內(nèi)容失去焦點(diǎn)后,調(diào)用 updateCell方法更新單元格數(shù)據(jù)。

引入

 <link rel="stylesheet" type="text/css" href="js/bootstrap/bootstrap-3.3.7-dist/css/bootstrap.min.css" />
    <link rel="stylesheet" type="text/css" href="js/bootstrap-table/1.12.1/bootstrap-table.min.css" />
    <script src="js/jquery.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="js/bootstrap/bootstrap-3.3.7-dist/js/bootstrap.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="js/bootstrap-table/1.12.1/bootstrap-table.min.js" type="text/javascript" charset="utf-8"></script>
    <script src="js/bootstrap-table/1.12.1/locale/bootstrap-table-zh-CN.min.js" type="text/javascript" charset="utf-8"></script>

json

[
    { "id": 1, "name": "Item 1", "price": "¥1" },
    { "id": 2, "name": "Item 2", "price": "¥2" },
    { "id": 3, "name": "Item 3", "price": "¥3" }
]

以上就是bootstrap-table 表格行內(nèi)編輯實(shí)現(xiàn)方法,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注億速云行業(yè)資訊頻道。

向AI問一下細(xì)節(jié)

免責(zé)聲明:本站發(fā)布的內(nèi)容(圖片、視頻和文字)以原創(chuàng)、轉(zhuǎn)載和分享為主,文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如果涉及侵權(quán)請(qǐng)聯(lián)系站長郵箱:is@yisu.com進(jìn)行舉報(bào),并提供相關(guān)證據(jù),一經(jīng)查實(shí),將立刻刪除涉嫌侵權(quán)內(nèi)容。

AI