玩转EasyUi弹出框
这两天在搞EasyUi的弹出框,弹出框之前也搞过很多个版本,总是觉得不那么完美,刚好最近有时间,就往多处想了想,功能基本上达到我的预期,并且在开发过程中遇到很多小技巧,特撰文如下。
走起:在EasyUi的Grid中插入自定义列。
代码如下:
$('#SaList').datagrid({
url: '/ForLog/WebShop/GetSaList',
queryParams: null,
pagination: true,
pageSize: ,
singleSelect:true,
showPageList: false,
pageList: [],
rownumbers: true,
nowrap: false,
height: ,
loadMsg: 'Load……',
columns: [[
{ field: 'SA', title: 'SA', width: },
{ field: 'ATDHK', title: 'Delivered from HK', width: },
{ field: 'ATAHK', title: 'ATA destination', width: },
{ field: 'HAWB', title: 'HAWB', width: },
{ field: 'STATUS', title: 'Confirm', width: },
{ field: 'ConfirmBtn', title: 'Confirm', width: ,
formatter: function(val, rowData) {
return "<a href=\"javascript:openDialog('" + rowData.SA + "-OK\');\"><img src='../Scripts/EasyUi/themes/default/images/tree_dnd_yes.png' /></a> <a href=\"javascript:openDialog('" + rowData.SA + "-NOK\');\"><img src='../Scripts/EasyUi/themes/default/images/tree_dnd_no.png' /></a> ";
}
},
{ field: 'STATUS1', title: 'STATUS1', width: },
{ field: 'STATUS2', title: 'STATUS2', width: },
{ field: 'STATUS3', title: 'STATUS3', width: }
]]
});
请注意 field: 'ConfirmBtn',这一列,就是我自定义的列,效果如下:

当点击勾勾叉叉时,会传参,并有弹出框出来,效果如下:

在这里有几个小技巧。
技巧1,弹出框的内容是用本页面Div呢,还是iframe?
如果我用本页面Div,那弹出框如何接收新传入的参数,如弹框上的SA号和状态,都是需要传参过来的。
正因为本页面Div无法满足接收传参且页面不刷新,所以我使用了iframe。
代码如下:
function openDialog(id) {
$('#openReceiveFeedBack')[0].src = 'ReceiveFeedback/' + id;
$('#ReceiveFeedBackDialog').dialog('open');
}
<div id="ReceiveFeedBackDialog" class="easyui-dialog" closed="true" buttons="#dlg-buttons" title="标题" style="width:500px;height:350px;">
<iframe scrolling="auto" id='openReceiveFeedBack' name="openReceiveFeedBack" frameborder="0" src="" style="width:100%;height:98%;"></iframe>
</div>
<div id="dlg-buttons">
<a href="#" class="easyui-linkbutton" onclick="formSubmit();">Save</a> <a href="#"
class="easyui-linkbutton" onclick="closeDialog();">Close</a>
</div>
技巧2,如弹框页面所示,Save按钮是在父级页面上的,而Form表单是在iframe页中的,父级页面需要调用框架页的提交事件。
我的代码是这样写的:
function formSubmit() {
frames["openReceiveFeedBack"].document.forms["form1"].submit();
}
技巧3,如果我对Input如下定义:disabled="disabled",那么在后台无法接收到此input,所以我改为:readonly="readonly"
技巧4,页面提交成功后,我希望给出成功的提示,并且弹出窗口自动关闭。
通常Mvc返回的要么是字符,要么是简单的JS提示,不足以关闭父级页面。
所以这里又使用了一个小技巧,返回Js代码,调用父级页面的关闭函数。
后台代码是这样的。
public ActionResult ReceiveFeedbackForm(FormCollection collection)
{
orderDal.AddSaReceive(collection["txtSa"], collection["txtStatus"], collection["txtReason"],new CurrentUser().UserInfo.LoginName);
return Content(@"<script>parent.ShowMsg();</script>", "text/html");
}
调用的父级页面代码是这样的。
function closeDialog() {
$('#ReceiveFeedBackDialog').dialog('close');
}
function ShowMsg() {
$.messager.alert('Success', 'Save Success!');
closeDialog();
}
So,效果是这样的。

弹出窗口已关闭,页面上只有信息提示按钮,点一下,这个事件就走完了。
全剧终,谢谢观看,请随手点击推荐。
玩转EasyUi弹出框的更多相关文章
- js简单显示和隐藏div,触发超链接,动态更改button值,setInterval()简单使用,jquery easyui弹出框简单使用 .
js简单显示和隐藏div .<!DOCTYPE html> .<html> .<head> .<meta charset="UTF-8"& ...
- easyui 弹出框调用外部js函数 提示“Microsoft JScript 运行时错误: 缺少对象”
昨天遇见一个很诡异的问题 我用easyui做了一个网站,其中有一个a页面和一个b页面,我通过easyui的window功能,在a页面中弹出了一个b页面,在b页面中,我用到了一个外部js的函数c,我在b ...
- jquery easyui 弹出消息框 (转载) jQuery EasyUI API 中文文档 - 消息框(Messager) http://www.cnblogs.com/hantianwei/archive/2012/03/19/2407113.html
<html> <head> <!-- 导入easyui插件的js和css样式; --> <link rel="stylesheet" ty ...
- jquery easyui 弹出消息框
<html> <head> <!-- 导入easyui插件的js和css样式; --> <link rel="stylesheet" ty ...
- 弹出框中选项卡的运用(easyUI)
先看一下页面效果: 此处有两个知识点:一个是弹出框的运用,一个是选项卡的运用 分析一下该HTML代码,最外面一个div是弹出框的,默认是关闭状态,可通过ID来控制弹出框的开关,该div的样式是easy ...
- 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-4 模态弹出框--结构分析
模态弹出框--结构分析 Bootstrap框架中的模态弹出框,分别运用了“modal”.“modal-dialog”和“modal-content”样式,而弹出窗真正的内容都放置在“modal-con ...
- 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-3 模态弹出框
模态弹出框(Modals) 这一小节我们先来讲解一个“模态弹出框”,插件的源文件:modal.js. 右侧代码编辑器(30行)就是单独引入 bootstrap 中发布出的“modal.js”文件. 样 ...
- 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-1导入JavaScript插件
导入JavaScript插件 Bootstrap除了包含丰富的Web组件之外,如前面介绍的下拉菜单.按钮组.导航.分页等.他还包括一些JavaScript的插件. Bootstrap的JavaScri ...
- easyui tree datagrid动态添加表头和表格数据,动态弹出框,修改和删除按钮
1.要有获取表头的URL和表格的URL 背景:点击树的一个节点,就加载一个表格,这个表格是动态的,表头和表格数据都是动态的 解决方案:需要两个URL,一个是获取表头的URL,一个是获取表格数据的URL ...
随机推荐
- Javascript数据类型之Undefined和null
Javascrip中的数据类型分为原始数据类型(primitive type)和对象数据类型(object type). 原始数据类型 原始数据类型包括:数字.字符串.布尔值.null.undefin ...
- php中的性能挖掘
搞php以后,感觉总是很别扭,因为我觉得php会很慢,因为array普遍,在Key的循环查找不是很浪费性能么!因为我以前搞.net和java,他们是用的大多是寻址和索引方式,而php中太多是使用Key ...
- IOS crash分析
此处不讨论具体的如何根据.dsym文件解析crash log的方式. 什么是崩溃: 不希望出现的中断,APP收到了系统发出的unhandle signal,来源主要由系统内核,处理器,或者应用程序本身 ...
- linux使用:vi编辑器
初学linux,目前是概念多于操作,所以记录下一些操作: 编辑某个文件():vi 文件名 编辑后保存退出::wq 编辑后不保存退出: :q! 参数:-R 只读模式 -x 文件加密(vim命令下使用) ...
- check environment var
田+R cmd set XXX check environment var
- Linux下c++通过动态链接库调用类
http://hi.baidu.com/ablenavy/item/b498901c6826bbf587ad4e33 Linux下的动态链接库叫so,即Shared Object,共享对象.一些函数就 ...
- Test Markdown Editor
Last night, I just saw a cute blogger's homepage. Then I want to write something. But anyway, I use ...
- CF 221div2 A. Lever
A. Lever 题目:http://codeforces.com/contest/376/problem/A 题意:杠杆原理 比两边的重量 input =^== output balance 9== ...
- platform_driver_register(),platform_device_register()区别
设备与驱动的两种绑定方式:在设备注册时进行绑定及在驱动注册时进行绑定. 以一个USB设备为例,有两种情形: (1)先插上USB设备并挂到总线中,然后在安装USB驱动程序过程中从总线上遍历各个设备,看驱 ...
- Linux进程管理知识整理
Linux进程管理知识整理 1.进程有哪些状态?什么是进程的可中断等待状态?进程退出后为什么要等待调度器删除其task_struct结构?进程的退出状态有哪些? TASK_RUNNING(可运行状态) ...