datatables.js 简单使用--弹出编辑框或添加数据框
内容:选中某一条记录,弹出编辑框
环境:asp.net mvc , bootstrap
显示效果:
代码: 至于怎么弄多选框,在上一篇博客里已经有说明。
主要用到了bootstrap的模态窗,下面代码是从网上找的,主要分3部分,标题header,内容body和底部footer
<div class="modal fade" id="myModal" tabindex="-1" role="dialog"
aria-labelledby="myModalLabel" aria-hidden="true">
<div class="modal-dialog">
<div class="modal-content">
<div class="modal-header">
<button type="button" class="close"
data-dismiss="modal" aria-hidden="true">
×
</button>
<h4 class="modal-title" id="myModalLabel">
模态框(Modal)标题
</h4>
</div>
<div class="modal-body">
内容
</div>
<div class="modal-footer">
<button type="button" class="btn btn-default"
data-dismiss="modal">关闭
</button>
<button type="button" class="btn btn-primary">
提交
</button>
</div>
</div><!-- /.modal-content -->
</div>
我主要是对上面的代码进行了封装,把它放到了一个js里。
//btn-modify 这个是编辑按钮的class名
$('.btn-modify').click(function () {
if ($(".checkchild:checked").length > 1)
{
alert("一次只能修改一条数据");
return;
}
var id = $(".checkchild:checked").val();
var initData = {
"appendId": "modalRef",//加到哪里去
"modalId": "myModal",
"title": "修改菜单",
"formId": "formEdit", //form的ID
"loadUrl": "/Menus/Edit", //如果不从页面加载,写成"null"
"loadParas": { "ID": id }, //向loadUrl传的数据
"postUrl": "/BasicManage/Edit", //提交add的url
"close": reloadDt, //关闭弹出窗后调用的方法
"cols": "" //[ {"displayName":"菜单名","fieldName":"Name"}]
};
whr.setModal(initData);
});
大体说明:我用js拼接了bootstrap的模态框,然后对它的body部分进行填充。
对body部分填充分2种方式: 1. 加载另一个页面(编辑时用这个比较好),2. 拼接一个form表单(主要是添加用)
主要传的参数是 initData .
"appendId": "modalRef" 把模态框的代码附加到哪里去 <div id="modalRef"></div>
"modalId": "myModal" 模态框代码的ID
"title": "修改菜单" 模态框标题
"formId": "formEdit", form表单的ID,至于为什么加一个form表单,是因为Jquery取数据比较方便,$("#formEdit").serialize()
"loadUrl": "/Menus/Edit", //如果不从页面加载,写成"null"
如果写成"null", 就会从cols中取数据
"loadParas": { "ID": id }, //向loadUrl传的数据,加载一个页面时需要传的数据,比如要取一条记录的数据要传给后台ID
"postUrl": "/BasicManage/Edit", //点击提交按钮时要提交到哪里,提交数据使用的 $("#formEdit").serialize(),会把form表单里有name的都提交到后台
"close": reloadDt, //关闭弹出窗后调用的方法,提交数据后,点模态框的关闭按钮时应该刷新表格的数据
//关闭弹出窗后调用的方法
function reloadDt() {
//刷新
_dataTables.ajax.reload();
}
"cols": "" //数据格式: [ {"displayName":"菜单名","fieldName":"Name"}]
会拼接成 菜单名:<input type="text" name="Name" />
whr.setModal(initData); 调用拼接模态框的js方法
代码如下:
var whr = {}; whr.setModal = function (data) {
var modal = "<div class='modal fade' id='" + data.modalId + "' tabindex='-1' role='dialog' aria-labelledby='myModalLabel' aria-hidden='true'> <div class='modal-dialog'> <div class='modal-content'> <div class='modal-header'> <button type='button' class='close' data-dismiss='modal' aria-hidden='true'> </button><h4 class='modal-title' id='myModalLabel'>" + data.title + "</h4> </div> <div class='modal-body'> </div> <div class='modal-footer'><button id='btn-close" + data.modalId + "' type='button' class='btn btn-default' data-dismiss='modal'> 关闭 </button> <button type='button' id='btn-" + data.modalId + "' class='btn btn-primary'> 提交</button> </div></div></div> </div>";
$("#" + data.appendId).empty();
$("#" + data.appendId).append(modal); //加载一个页面的内容
if (data.loadUrl != "null") {
var form2 = "<form id='" + data.formId + "'> </form>";
$("#" + data.modalId + " .modal-body").append(form2);
$("#" + data.formId).load(data.loadUrl, data.loadParas);
}
else {
var form2 = "<form id='" + data.formId + "' action='" + data.postUrl + "' method='post' >";
for (var i = 0; i < data.cols.length; i++) {
form2 += " <div > <label >" + data.cols[i]["displayName"] + "</label> <input type='text' class='form-control' name='" + data.cols[i]["fieldName"] + "' placeholder=''> </div>";
}
form2 += "</form>";
$("#" + data.modalId + " .modal-body").append(form2);
}
$("#" + data.modalId).modal('show');
$("#btn-" + data.modalId).click(function ()
{
$.post(data.postUrl, $("#" + data.formId).serialize(), function (data) {
if (data == "ok") {
alert("添加成功");
}
else {
alert("添加失败");
}
}); }); $("#btn-close" + data.modalId).click(function () {
data.close();
});
}
注意 其中的一段代码 ,post的返回值我写死了,可以修改一下上面封装的js,改成自定义的
$.post(data.postUrl, $("#" + data.formId).serialize(), function (data) {
if (data == "ok") {
alert("添加成功");
}
else {
alert("添加失败");
}
});
后台代码:
public string AddMenu(Menu menu)
{
MenuDAO Dao = new MenuDAO();
bool flag = Dao.AddMenu(menu);
return flag?"ok":"error";
}
datatables.js 简单使用--弹出编辑框或添加数据框的更多相关文章
- js简单的弹出框有关闭按钮
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...
- 原生Js封装的弹出框-弹出窗口-页面居中-多状态可选
原生Js封装的弹出框-弹出窗口-页面居中-多状态可选 实现了一下功能: 1.title可自定义 可拖拽 2.width height可以自定义 3.背景遮罩和透明度可以自定义 4.可以自己编辑弹出 ...
- 代码录播:jQueryMobile 实现一个简单的弹出框效果
今天给大家带来的是 jQueryMobile 实现一个简单的弹出框效果,有兴趣的童鞋可以试试哦~ ^_^ 阅读原文:www.gbtags.com
- JavaScript 实现简单的 弹出框关闭框
JavaScript 实现简单的 弹出框关闭框 知识点: 1.javaScript 添加HTML标签 2.javaScript 添加HTML标签属性 3.javaScript 追加元素 代码献上: & ...
- 手机浏览器浏览WebApp弹出的键盘遮盖住文本框的解决办法
手机浏览器浏览WebApp弹出的键盘遮盖住文本框的解决办法 最近碰到Android微信内置浏览H5页面,因为其中的文本输入框(input)放置在靠近页面的中下方,点击文本框以后,则输入框会被弹出的手机 ...
- JS+CSS实现弹出全屏灰黑色透明遮罩效果的方法
本文实例讲述了js+CSS实现弹出一个全屏灰黑色透明遮罩效果的方法.分享给大家供大家参考.具体分析如下: 在众多的网站都有这样的效果,当进行一定的操作之后,会弹出一个灰黑色的半透明的遮罩,在上面可以操 ...
- 使用Vue-TreeSelect组件的时候,用watch变量方式解决弹出编辑对话框界面无法触发更新的问题
在前篇随笔<使用Vue-TreeSelect组件实现公司-部门-人员级联下拉列表的处理>中介绍了Vue-TreeSelect组件的使用,包括使用v-modal绑定值,normalizer ...
- js进阶 11-20 弹出层如何制作
js进阶 11-20 弹出层如何制作 一.总结 一句话总结:其实就是一个div,控制显示和隐藏即可.设置成绝对定位更好,就可以控制弹出层出现的位置.关闭的画质需要将display重新设置为none就好 ...
- 简单实现弹出弹框页面背景半透明灰,弹框内容可滚动原页面内容不可滚动的效果(JQuery)
弹出弹框 效果展示 实现原理 html结构比较简单,即: <div>遮罩层 <div>弹框</div> </div> 先写覆盖显示窗口的遮罩层div.b ...
随机推荐
- SQLSERVER将数据移到另一个文件组之后清空文件组并删除文件组
SQLSERVER将数据移到另一个文件组之后清空文件组并删除文件组 之前写过一篇文章:SQLSERVER将一个文件组的数据移动到另一个文件组 每个物理文件(数据文件)对应一个文件组的情况(一对一) 如 ...
- 在IE中,JS方法名和input的name重名时,调用该方法无效
在IE中,JS方法名和input的name重名时,调用该方法无效.提示:网页错误详细信息 用户代理: Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.1 ...
- 【EJB学习笔记】——EJB开发环境搭建(Eclipse集成JBoss)
之前一直用的EJB开发环境是他们搭建好的,直接拿来用,不过还是感觉老吃别人嚼好的不太好吃,所以自己动手来玩一玩. EJB开发依赖的最基本的环境:JDK.Eclipse.JBoss,这里简单介绍一下最基 ...
- yum/dnf/rpm 等 查看rpm 包安装路径 (fedora 中 pygtk 包内容安装到哪里了)
有时候我们 使用 包管理工具,安装很方便,但我们还要能知道它们安装了什么文件,都把这些文件安装到哪里了? 我们以探究 pygtk 为例 在 fedora 28 之中 查找 pygtk: ➜ ~ rpm ...
- VS网站开发的发布部署的不同情况说明
VS网站开发有两种模式: 1.网站模式 2.应用模式 其中,网站模式的发布,要考虑勾选“使用固定命名和单页程序集” 如下图 网站模式: 新建网站的网站模式 新建网站的网站模式第二步 应 ...
- MySQL基础之 外键参照讲解
外键: 定义:如果表A的主关键字是表B中的字段,则该字段称为表B的外键,表A称为主表,表B称为从表. 作用:外键是用来实现参照完整性的,不同的外键约束方式将可以是两张表紧密的结合起来.比如修改或者删除 ...
- SDN课程作业总结
SDN 期末作业总结 设计场景 我们采用参考场景一,实现负载均衡,拓扑图及端口示意如下: 演示视频 视频地址 关键代码 package loadBalance; import java.io.Buff ...
- sql优化常见的集中方法
在sql查询中为了提高查询效率,我们常常会采取一些措施对查询语句进行sql优化,下面总结的一些方法,有需要的可以参考参考. 1.对查询进行优化,应尽量避免全表扫描,首先应考虑在 where 及 ord ...
- eclipse导出可执行jar包步骤
按步骤图文说明 第一步:选择要导出的工程,右键[export] 第二步:双击Java文件夹下的[Runnable Jar File] 第三步:该步骤分4步走 3.1 从下拉框选择该jar的入口文件,即 ...
- 基于VC++ Win32+CUDA+OpenGL组合与VC++ MFC SDI+CUDA+OpenGL组合两种方案的遥感影像显示:获得的重要结论!
1.基于VC++ Win32+CUDA+OpenGL组合的遥感影像显示 在该组合方案下,初始化时将OpenGL设置为下面两种方式,效果一样 //设置方式1 glutInitDisplayMode (G ...