您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關(guān)bootstrap-table 表格行內(nèi)編輯實(shí)現(xiàn)方法,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
這篇文章向大家介紹一下如何使用bootstrap table插件實(shí)現(xiàn)表格的行內(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è)資訊頻道。
免責(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)容。