
基于Bootstrap+Nodejs的Web应用(四)_数据修改
发布日期:2021-05-14 05:22:05
浏览次数:16
分类:精选文章
本文共 4981 字,大约阅读时间需要 16 分钟。
1. 模拟表格数据操作
在本次项目中,我们采用Bootstrap模态对话框实现新增、修改表格数据的录入功能。通过对表格数据的增删改操作模拟,确保系统具备基本的数据管理能力。为此,我们主要采用以下技术手段:
首先,我们利用Bootstrap的插件模态对话框(modal)来实现新增、修改数据的录入窗口。通过设置合适的class属性和数据属性,可以实现模态显示、淡入淡出效果以及窗口的定位等功能。具体实现细节如下:
2. 模态对话框实现
模态对话框的设计与Windows桌面程序中的对话框类似,采用父窗口+子窗口的层级布局。子窗口始终保持对焦,且不允许切换到父窗口,实现了高效的数据录入体验。技术实现采用隐藏div元素的方式,通过JavaScript控制其可见性来实现模态显示。这种方式既节省了资源,又保持了良好的用户体验。
3. 模态对话框布局与使用方法
模态对话框的布局采用Bootstrap的标准模态结构,主要包括以下几个部分:
- modal: 表示模态对话框的根容器
- fade: 模态显示切换时的淡入淡出效果
- modal-header: 对话框的顶部标题栏,用于显示对话框标题
- modal-body: 对话框的主要内容区域,用于放置表单或其他控件
- modal-footer: 对话框的底部区域,通常用于放置按钮或操作控件
<div class="modal fade" id="addUserModal" tabindex="-1" role="dialog"> <div class="modal-dialog"> <div class="modal-content"> <div class="modal-header"> <h3>新增用户</h3> </div> <div class="modal-body"> <form id="addUserForm" class="form-horizontal"> <div class="form-group"> <label for="s_id" class="col-sm-2 control-label">ID</label> <div class="col-sm-7"> <input type="text" name="s_id" class="form-control" id="s_id" placeholder="ID"> </div> </div> <div class="form-group"> <label for="s_name" class="col-sm-2 control-label">姓名</label> <div class="col-sm-7"> <input type="text" name="s_name" class="form-control" id="s_name" placeholder="密码"> </div> </div> <div class="form-group"> <label for="s_age" class="col-sm-2 control-label">年龄</label> <div class="col-sm-7"> <input type="text" name="s_age" class="form-control" id="s_age" placeholder="年龄"> </div> </div> <div class="form-group"> <label for="inputSex" class="col-sm-2 control-label">性别</label> <div class="col-sm-7"> <input type="text" name="sex" class="form-control" id="inputSex" placeholder="性别"> </div> </div> <div class="form-group"> <label for="inputPhone" class="col-sm-2 control-label">手机</label> <div class="col-sm-7"> <input type="text" name="phone" class="form-control" id="inputPhone" placeholder="手机"> </div> </div> <div class="form-group"> <label for="inputEmail" class="col-sm-2 control-label">邮箱</label> <div class="col-sm-7"> <input type="email" name="email" class="form-control" id="inputEmail" placeholder="邮箱"> </div> </div> </form> </div> <div class="modal-footer"> <button type="button" id="conf" class="btn btn-default" onclick="addUser()">确定</button> <button type="button" class="btn btn-default" data-dismiss="modal" onclick="resetAddModal()">取消</button> </div> </div> </div></div>
触发模态对话框的方式包括按钮点击和URL跳转等。例如,新增按钮可以通过以下代码实现:
<button id="btn_add_out" type="button" class="btn btn-default" data-toggle="modal" data-target="#addUserModal"> <span class="glyphicon glyphicon-plus" aria-hidden="true"></span>新增</button>
4. 以修改为例
在实际项目中,除了新增功能外,修改功能也是关键的数据操作场景。通过以下方法实现:
首先,弹出模态对话框并填充已选行的信息。具体实现如下:
function updateUserModal() { var rows = $("#tabUsers").bootstrapTable("getSelections"); if (rows.length != 1) { alert("请选择1条记录"); return; }; var row = rows[0]; $("#se_id").val(row.id); $("#se_name").val(row.name); $("#se_age").val(row.aget); $("#updateUserModal").modal("show"); }
点击保存按钮后,通过AJAX提交数据到后台接口。具体实现如下:
function addUser() { var param = $("#addUserForm").serializeArray(); $.ajax({ url: "/users_Adduser", method: "post", data: param, dataType: "json", success: function(data) { if (data.dbret == "success") { $("#addUserModal").modal("hide"); $("#tabUsers").bootstrapTable('refresh'); } }, error: function() { alert("新增失败"); } }); }
5. 删除功能
删除功能的实现相对简单,主要包括以下步骤:
var delUsers = function() { var rows = $("#tabUsers").bootstrapTable('getSelections'); if (rows.length == 0) { alert("请选择要删除的记录"); return; }; var ids = ""; for (var i = 0; i < rows.length; i++) { if (rows[i].id) { ids += rows[i].id + ","; } } $.ajax({ url: "/users_Deleteuser", method: "post", data: { "ids": ids }, dataType: "json", success: function(data) { if (data.dbret == "success") { $("#tabUsers").bootstrapTable('refresh'); } }, error: function() { alert("删除失败"); } }); }
问题与建议
在实际使用过程中,发现使用Bootstrap原生模态对话框在批量修改数据时稍显麻烦。为提高效率,可以考虑使用第三方开发的editable插件,该插件能够更直观地实现数据的批量编辑功能。开发者可以根据实际需求进行试验和优化。
发表评论
最新留言
哈哈,博客排版真的漂亮呢~
[***.90.31.176]2025年04月21日 22时30分58秒
关于作者

喝酒易醉,品茶养心,人生如梦,品茶悟道,何以解忧?唯有杜康!
-- 愿君每日到此一游!
推荐文章
国标流媒体服务器以ROOT身份运行提示“permission denide”报错解决
2019-03-10
qt中转到槽后如何取消信号与槽关联
2019-03-10
qt问题记录-spin box与double spin box
2019-03-10
移动端事件
2019-03-10
css 图片按比例缩放
2019-03-10
小程序form表单里面buton点击事件失效
2019-03-10
微信小程序placeholder设置自定义样式
2019-03-10
spring-day01
2019-03-10
spring的值注入与组件扫描
2019-03-10
C#跨窗体程序调用方法的具体操作
2019-03-10
C#中创建Android项目
2019-03-10
统计学之变异系数与是非标志
2019-03-10
关于继承的一些基本知识
2019-03-10
抖音发布黄金时间段,抖音上热门最佳时间
2019-03-10
我的图床~
2019-03-10
Thymeleaf sec:authorize 标签不生效
2019-03-11
Iterable与Iterator
2019-03-11
Python机器学习(六十五)Matplotlib 入门
2019-03-11