问答文章1 问答文章501 问答文章1001 问答文章1501 问答文章2001 问答文章2501 问答文章3001 问答文章3501 问答文章4001 问答文章4501 问答文章5001 问答文章5501 问答文章6001 问答文章6501 问答文章7001 问答文章7501 问答文章8001 问答文章8501 问答文章9001 问答文章9501

用js创建的可编辑的bootstrap表格。

发布网友 发布时间:2022-04-23 08:52

我来回答

2个回答

懂视网 时间:2022-04-07 15:11

这篇文章向大家介绍一下如何使用bootstrap table插件实现表格的行内编辑功能。

推荐教程:Bootstrap图文教程

先放一张效果图:

bootstrap71.gif

应用场景

之前的项目也是采用bootstrap table,添加和修改数据都是通过模态框来编辑的,后来有了点击行来编辑和新增的需求,于是乎试试……

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, //点击row选中radio或CheckBox
 columns: [{
  checkbox: true
 }, {
  field: 'id',
  title: 'Item ID'
 }, {
  field: 'name',
  title: 'Item Name'
 }, {
  field: 'price',
  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);
  })
 }
 });

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

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

});

实现原理

通过bootstrap table自带的 onClickCell 方法,点击 td 添加 contenteditable 属性(ps: 使元素可编辑),于是 td 元素具有了类似于文本框的 focus 和 blur 事件,用户点击 td 获取焦点,编辑完内容失去焦点后,调用 updateCell方法更新单元格数据。

引入

 <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" }
]

热心网友 时间:2022-04-07 12:19

之前介绍bootstrapTable组件的时候有提到它的行内编辑功能,只不过为了展示功能,将此一笔带过了,罪过罪过!最近项目里面还是打算将行内编辑用起来,于是再次研究了下x-editable组件,遇到过一些坑,再此做个采坑记录吧!想要了解bootstrapTable的朋友可以移步JS组件系列——表格组件神器:bootstrap table。
一、x-editable组件介绍
x-editable组件是一个用于创建可编辑弹出框的插件,它支持三种风格的样式:bootstrap、Jquery UI、Jquery。大致效果如下图:

根据博主一贯的风格,这里肯定是选用第一种喽。首先还是给出开源地址吧。
x-editable开源地址:https://github.com/vitalets/x-editable
x-editable文档地址:http://vitalets.github.io/x-editable/docs.html
x-editable在线Demo:http://vitalets.github.io/x-editable/demo-bs3.html
1、x-editable初体验

首先下载基于bootstrap的源码到本地。引用相关文件。

<link href="/Content/bootstrap/css/bootstrap.min.css" rel="stylesheet" />
<link href="~/Content/bootstrap3-editable/css/bootstrap-editable.css" rel="stylesheet" />

<script src="/Scripts/jquery-1.9.1.min.js"></script>
<script src="/Content/bootstrap/js/bootstrap.min.js"></script>
<script src="~/Content/bootstrap3-editable/js/bootstrap-editable.js"></script>

页面元素

复制代码代码如下:
<a href="#" id="username" data-type="text" data-title="用户名">用户名</a>

js初始化

$(function () {
$('#username').editable();
});
声明声明:本网页内容为用户发布,旨在传播知识,不代表本网认同其观点,若有侵权等问题请及时与本网联系,我们将在第一时间删除处理。E-MAIL:11247931@qq.com
网上订酒店哪个网好 经常听了歌就使劲摇头,长期会对大脑有什么影响吗 携程有什么优点 吉娃娃幼犬多少钱一只吉娃娃犬多少钱一只黑龙江省那有卖 吉娃娃现在多少钱一只? 预防中风的小动作有哪些呢? 京巴,吉娃娃,这类小型宠物狗大概多少钱? 摇头时颈椎有响声 旅行社怎么和携程合作推广旅游线路 不是纯种的吉娃娃狗狗能卖多少钱呢 PS如何用图片把自己的脸遮住? Bootstrap有没有好用的jQuery表格插件 bootstrap table 和bootstrap 的区别 美图秀秀怎么用小图标遮住脸呀? 有什么好的bootstrap表格插件 怎么把视频上人脸用表情挡上的给去掉? 在抖音上拍视频不想让人拍到脸怎么用表情遮住脸? 写给妈妈的一封信,900字 一封给父母的家书,800字左右 有20箱苹果 以每箱15千克为标准 超过或不足的数分别用正数或负数来表示 记录如下:(照片) 如何看被表情挡住的图片? 如下照片遮住脸的笑脸是怎么弄上去的? 一个女生在微信个性签名写这个是什么意思? 原谅同桌的个性签名 哪里产的红心猕猴桃最好吃? 帮忙去一组好听的QQ名和个性签名 女生可受个性签(不关于爱情) 现在进口的Zespri佳沛意大利奇异果和新西兰奇异果有什么差别吗? 有没有带哲理的个性签名啊??越多越好....... QQ个性签名, 如果你要放荡自由就该把真心藏好 ,的对句是什么, Bootstrap框架有没有完整的表格组件 急求写给妈妈的一封信900字,内容是要讲学校里发生的事。格式也要。 bootstrap表格组件如何引入到axcure 给妈妈的一封信900字诉说自己的烦恼与困惑 用bootstrap table插件实现的表格,如何实现固定表头 ,当列多的情况下... Bootstrap表格插件的数据怎么修改? 写给父母的家书要谈什么内容呢? 使用BootStrap的table表格,如何利用BootStrap的分页插件Paginator实现表 ... 写给妈妈的家书的结尾该怎么写 以元旦为主题写一封给父母的家书800字,要求符合书信的格式 bootstrap-table能做树形表格么 求中秋节给父母的家书,800字以上,符合中学生的,表达对父母的感激 在python3.3 Flask_bootstrap中 如何使用Jquery-DataTable表格插件 军人写给母亲的一封信:家书传情,让兵妈妈落泪 给母亲河的一封家书900 1.訾予与浮屠游 2.退之所罪者,其迹也 3.髡而缁 4.因北人寓退之 这4句是什么意思求解 一根竹竿插入水中3&#47;4米,又倒过来插入水中道竹竿1&#47;2处,这是竹竿有 有5&#47;6米未湿, 把一根竹竿插入水中3&#47;5m,然后将竹竿倒转,再插入水中至竹竿的1&#47;2处,结果竹竿未湿的一段长4&#47;7 蜜炼川贝枇杷膏的做法 蜜练川贝枇杷膏的做法