BootStrap 可编辑表Table格

让我们来详细讲解一下Bootstrap可编辑表格!

Bootstrap可编辑表格

Bootstrap可编辑表格是一种常用的前端组件,它可以让用户在网页上直接进行表格的编辑操作,而无需通过后端来实现。

通过使用Bootstrap可编辑表格,我们可以方便地实现数据的展示和编辑,从而增强网站的用户交互性和数据处理能力。

以下是实现Bootstrap可编辑表格的完整攻略。

第一步:引入Bootstrap库

要使用Bootstrap可编辑表格,我们首先需要引入Bootstrap库。可以通过CDN引入,也可以下载本地文件引入。

常规引入方式的代码如下所示:

<!-- 引入Bootstrap样式 -->
<link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.min.css">

<!-- 引入Bootstrap的JavaScript库 -->
<script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js"></script>

第二步:创建表格

我们可以通过直接在HTML代码中创建表格,也可以通过JavaScript代码动态创建表格。在这里,我们以直接在HTML代码中创建表格为例进行说明。

Bootstrap可编辑表格的基本格式如下所示:

<table class="table">
    <thead>
        <tr>
            <th>列名1</th>
            <th>列名2</th>
            ...
            <th>列名N</th>
        </tr>
    </thead>
    <tbody>
        <tr>
            <td>行1列1</td>
            <td>行1列2</td>
            ...
            <td>行1列N</td>
        </tr>
        <tr>
            <td>行2列1</td>
            <td>行2列2</td>
            ...
            <td>行2列N</td>
        </tr>
        ...
        <tr>
            <td>行M列1</td>
            <td>行M列2</td>
            ...
            <td>行M列N</td>
        </tr>
    </tbody>
</table>

其中,class="table"是表示这是一个Bootstrap表格的标志。

第三步:引入Bootstrap Editable库

Bootstrap Editable是Bootstrap可编辑表格的核心库,它提供了一系列的API,用于实现表格的编辑功能。

我们可以通过CDN引入Bootstrap Editable库,也可以下载本地文件进行引入。

常规引入方式的代码如下所示:

<!-- 引入Bootstrap Editable样式 -->
<link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/bootstrap3-editable/1.5.1/css/bootstrap-editable.css">

<!-- 引入Bootstrap Editable的JavaScript库 -->
<script src="https://cdn.bootcdn.net/ajax/libs/bootstrap3-editable/1.5.1/js/bootstrap-editable.min.js"></script>

第四步:使用Bootstrap Editable编辑表格

在引入了Bootstrap库和Bootstrap Editable库之后,我们就可以愉快地开始使用Bootstrap可编辑表格了。

Bootstrap Editable提供了一系列的API,用于实现表格的编辑操作。我们可以通过对表格和表格中的元素进行不同的设置,来实现表格的编辑操作。

4.1 表格整体的可编辑设置

要实现整张表格的可编辑操作,我们可以通过以下代码进行设置:

<!-- 表格中的内容可以被编辑 -->
<table class="table">
    <thead>
        <!-- 表头不可编辑 -->
        ...
    </thead>
    <!-- 整张表格可编辑 -->
    <tbody data-role="table" data-url="save.php" data-type="text" data-pk="1">
        ...
    </tbody>
</table>

其中,data-role="table"表示整张表格是可编辑的;data-url="save.php"表示表格中的内容修改后将会发起一个POST请求到save.php页面进行保存;data-type="text"表示表格中元素的类型是文本;data-pk="1"表示表格中元素的主键为1。

4.2 表格单元格的可编辑设置

要实现表格单元格的可编辑操作,我们可以通过以下代码进行设置:

<!-- 表格中的内容可以被编辑 -->
<table class="table">
    <thead>
        <!-- 表头不可编辑 -->
        ...
    </thead>
    <tbody>
        <tr>
            <!-- 单元格可编辑 -->
            <td data-role="td" data-name="username" data-type="text" data-pk="1">Tom</td>
            ...
        </tr>
    </tbody>
</table>

其中,data-role="td"表示该单元格是可编辑的;data-name="username"表示名称为username;data-type="text"表示单元格中元素的类型是文本;data-pk="1"表示单元格中元素的主键为1。

4.3 表格列的可编辑设置

要实现表格列的可编辑操作,我们可以通过以下代码进行设置:

<!-- 表格中的内容可以被编辑 -->
<table class="table">
    <thead>
        <tr>
            <!-- 列名1 不可编辑 -->
            <th>列名1</th>
            <!-- 列名2 可编辑 -->
            <th data-role="column" data-name="email" data-type="text" data-pk="1">列名2</th>
            <!-- 列名3 可编辑 -->
            <th data-role="column" data-name="address" data-type="text" data-pk="2">列名3</th>
            ...
        </tr>
    </thead>
    <tbody>
        ...
    </tbody>
</table>

其中,data-role="column"表示该列是可编辑的;data-name="email"表示该列的名称是email;data-type="text"表示该列中元素的类型是文本;data-pk="1"表示该列中元素的主键为1。

示例1

以下是一个实现基本可编辑表格的示例。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Bootstrap可编辑表格</title>
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/bootstrap3-editable/1.5.1/css/bootstrap-editable.css">
</head>
<body>
    <div class="container">
        <table class="table">
            <thead>
                <tr>
                    <th>姓名</th>
                    <th>年龄</th>
                    <th>性别</th>
                    <th>联系方式</th>
                </tr>
            </thead>
            <tbody data-role="table" data-url="save.php" data-type="text" data-pk="1">
                <tr>
                    <td data-role="td" data-name="name" data-type="text" data-pk="1">张三</td>
                    <td data-role="td" data-name="age" data-type="text" data-pk="2">24</td>
                    <td data-role="td" data-name="gender" data-type="select" data-pk="3" data-source="[{'value':'男','text':'男'}, {'value':'女','text':'女'}]">男</td>
                    <td data-role="td" data-name="phone" data-type="text" data-pk="4">12345678910</td>
                </tr>
                <tr>
                    <td data-role="td" data-name="name" data-type="text" data-pk="5">李四</td>
                    <td data-role="td" data-name="age" data-type="text" data-pk="6">27</td>
                    <td data-role="td" data-name="gender" data-type="select" data-pk="7" data-source="[{'value':'男','text':'男'}, {'value':'女','text':'女'}]">男</td>
                    <td data-role="td" data-name="phone" data-type="text" data-pk="8">13123456789</td>
                </tr>
            </tbody>
        </table>
    </div>

    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/bootstrap3-editable/1.5.1/js/bootstrap-editable.min.js"></script>
    <script>
        $(function () {
            $('select').editable();
            $('td[data-role="td"]').editable({
                success: function (response, newValue) {
                    $(this).html(newValue);
                }
            });
            $('th[data-role="column"]').editable({
                success: function (response, newValue) {
                    var index = $(this).index();
                    $('table tr').each(function () {
                        $(this).find('td:eq(' + index + ')').html(newValue);
                    });
                    $(this).html(newValue);
                }
            });
        });
    </script>
</body>
</html>

示例2

以下是一个实现实时提交和动态增加行的可编辑表格的示例。

<!DOCTYPE html>
<html>
<head>
    <meta charset="utf-8">
    <title>Bootstrap可编辑表格</title>
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/css/bootstrap.min.css">
    <link rel="stylesheet" href="https://cdn.bootcdn.net/ajax/libs/bootstrap3-editable/1.5.1/css/bootstrap-editable.css">
</head>
<body>
    <div class="container">
        <table class="table">
            <thead>
                <tr>
                    <th>姓名</th>
                    <th>年龄</th>
                    <th>性别</th>
                    <th>联系方式</th>
                </tr>
            </thead>
            <tbody data-role="table" data-url="save.php" data-type="text" data-pk="1">
                <tr>
                    <td data-role="td" data-name="name" data-type="text" data-pk="1">张三</td>
                    <td data-role="td" data-name="age" data-type="text" data-pk="2">24</td>
                    <td data-role="td" data-name="gender" data-type="select" data-pk="3" data-source="[{'value':'男','text':'男'}, {'value':'女','text':'女'}]">男</td>
                    <td data-role="td" data-name="phone" data-type="text" data-pk="4">12345678910</td>
                </tr>
                <tr>
                    <td data-role="td" data-name="name" data-type="text" data-pk="5">李四</td>
                    <td data-role="td" data-name="age" data-type="text" data-pk="6">27</td>
                    <td data-role="td" data-name="gender" data-type="select" data-pk="7" data-source="[{'value':'男','text':'男'}, {'value':'女','text':'女'}]">男</td>
                    <td data-role="td" data-name="phone" data-type="text" data-pk="8">13123456789</td>
                </tr>
            </tbody>
        </table>
        <button id="add-row" class="btn btn-primary">添加一行</button>
        <button id="submit" class="btn btn-primary">提交修改</button>
    </div>

    <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.0/jquery.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/twitter-bootstrap/4.6.0/js/bootstrap.min.js"></script>
    <script src="https://cdn.bootcdn.net/ajax/libs/bootstrap3-editable/1.5.1/js/bootstrap-editable.min.js"></script>
    <script>
        $(function () {
            $('select').editable();
            $('td[data-role="td"]').editable({
                success: function (response, newValue) {
                    $(this).html(newValue);
                }
            });
            $('th[data-role="column"]').editable({
                success: function (response, newValue) {
                    var index = $(this).index();
                    $('table tr').each(function () {
                        $(this).find('td:eq(' + index + ')').html(newValue);
                    });
                    $(this).html(newValue);
                }
            });

            // 添加一行
            $('#add-row').click(function () {
                var len = $('table tbody tr').length;
                var html = '<tr><td data-role="td" data-name="name" data-type="text" data-pk="' + (len + 1) + '">新的姓名</td><td data-role="td" data-name="age" data-type="text" data-pk="' + (len + 2) + '">0</td><td data-role="td" data-name="gender" data-type="select" data-pk="' + (len + 3) + '" data-source="[{' + "'value':'男','text':'男'" + '}, {' + "'value':'女','text':'女'" + '}]">男</td><td data-role="td" data-name="phone" data-type="text" data-pk="' + (len + 4) + '">0</td></tr>';
                $('table tbody').append(html);
                $('td[data-role="td"]').editable({
                    success: function (response, newValue) {
                        $(this).html(newValue);
                    }
                });
                $('select').editable();
            });

            // 提交修改
            $('#submit').click(function () {
                $('tbody[data-role="table"]').editable('submit', {
                    url: 'save.php',
                    ajaxOptions: {
                        type: 'POST',
                        dataType: 'json'
                    },
                    success: function (response, newValue) {
                        console.log(response);
                        console.log(newValue);
                    },
                    error: function (response) {
                        console.log(response);
                    }
                });
            });
        });
    </script>
</body>
</html>

这就是Bootstrap可编辑表格的完整攻略,希望对你有所帮助!

本站文章如无特殊说明,均为本站原创,如若转载,请注明出处:BootStrap 可编辑表Table格 - Python技术站

(0)
上一篇 2023年6月10日
下一篇 2023年6月10日

相关文章

  • JavaScript canvas实现围绕旋转动画

    下面是详细讲解“JavaScript canvas实现围绕旋转动画”的完整攻略。 准备工作 在开始之前,需要做一些准备工作: 安装最新版本的浏览器,推荐使用Chrome或FireFox浏览器; 熟悉JavaScript语言基础知识; 熟悉canvas API基础知识。 创建canvas环境 首先,在HTML中创建一个canvas元素,并赋予宽高属性,同时为其…

    css 2023年6月10日
    00
  • CSS3实现动态翻牌效果 仿百度贴吧3D翻牌一次动画特效

    实现CSS3动态翻牌效果,需要以下步骤: 1. HTML结构 我们需要一些HTML结构来构建翻牌所需的图形元素。下面是示例结构: <div class="flip-card"> <div class="flip-card-inner"> <div class="flip-card…

    css 2023年6月10日
    00
  • CSS文字控制与文本控制属性介绍及应用示例

    CSS文字控制与文本控制属性介绍及应用示例 1. 字体属性(font) 1.1 font-family font-family 用于设置文本的字体,多个字体之间用逗号隔开。如果第一个字体不存在,那么会使用下一个字体来代替它。 以下是一个示例: p { font-family: "Georgia", "Times New Roma…

    css 2023年6月9日
    00
  • vue中响应式布局如何将字体大小改成自适应

    当视口的宽度发生变化时,通过响应式布局来适配不同终端设备的屏幕尺寸是非常重要的。其中,一个关键的问题是如何使字体的大小自适应。Vue.js通过提供内置directive,即 v-bind:class,以及CSS Flexbox来解决这个问题,下面是完整攻略。 1. 使用CSS中的rem rem是CSS的一个相对单位,它是相对于根元素的字体大小进行计算的。在v…

    css 2023年6月9日
    00
  • js+css3实现旋转效果

    当我们想要实现一个旋转效果的时候,我们通常会使用CSS3中的transform属性,而结合JavaScript则可以实现更加灵活的旋转效果。下面就为大家介绍一下如何使用js+css3实现旋转效果的完整攻略: 步骤一:HTML基础设置 首先,我们需要在HTML文档中引入css和js文件,如下所示: <!DOCTYPE html> <html …

    css 2023年6月11日
    00
  • 初学者简单学习CSS网页布局

    CSS(层叠样式表)是一种用于描述网页样式的语言,可以用于控制网页的布局、颜色、字体等方面。对于初学者来说,学习 CSS 网页布局是一个重要的基础。以下是关于初学者简单学习 CSS 网页布局的完整攻略。 步骤一:了解盒模型 在学习 CSS 网页布局之前,需要先了解盒模型。盒模型是指 HTML 元素在页面中所占据的空间,包括元素的内容、内边距、边框和外边距。以…

    css 2023年5月18日
    00
  • 非常流行的所谓的气泡窗口

    关于“非常流行的所谓的气泡窗口”的攻略,我为你列出了以下步骤: 什么是气泡窗口 一种常见的 UI 技巧是将小型气泡窗口添加到网页中,以增强交互。这些气泡窗口可以在几乎任何地方出现,并为用户提供有用的信息。气泡窗口通常用于错误消息、提示、警告或更多信息的详细说明。 如何创建气泡窗口 使用 CSS 代码和 JavaScript 可以相对较容易地创建气泡窗口。 主…

    css 2023年6月10日
    00
  • AngularJs bootstrap详解及示例代码

    接下来我将给你详细讲解“AngularJs bootstrap详解及示例代码”的完整攻略。 什么是AngularJS Bootstrap? AngularJS Bootstrap是一个基于AngularJS框架的UI组件库,它为AngularJS应用程序提供了众多常用的UI组件和指令,例如弹出框(modal)、选项卡(tabs)、滚动条(scrollspy)…

    css 2023年6月9日
    00
合作推广
合作推广
分享本页
返回顶部