玩转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 ...
随机推荐
- 谈谈php中上传文件的处理
这是一个表单的时代... 我们在浏览器中编辑自己的信息,会遇到上传头像:在文库中,我们会上传文档......到处存在“上传”这个词. php是最好的语言(其他语言的程序猿们不要打我...).php在处 ...
- 2693: jzptab - BZOJ
Description Input 一个正整数T表示数据组数接下来T行 每行两个正整数 表示N.MOutput T行 每行一个整数 表示第i组数据的结果Sample Input 1 4 5 Sampl ...
- Hadoop以及其外围生态系统的安装参考
在研究Hadoop的过程中使用到的参考文档: 1.Hadoop2.2 参考文档 在CentOS上安装Hadoop 2.x 集群: http://cn.soulmachine.me/blog/201 ...
- Java多线程——<二>将任务交给线程,线程声明及启动
一.任务和线程 <thinking in java>中专门有一小节中对线程和任务两个概念进行了具体的区分,这也恰好说明任务和线程是有区别的. 正如前文所提到的,任务只是一段代码,一段要达成 ...
- jquery获取标签内容,编辑内容
一.获取页面元素 三种方式获取页面中元素的内容. input标签使用:.val()获取 标签下的html及文本内容:.html() 仅获取标签下的纯文本内容:.text() <head> ...
- NYOJ-32 组合数 AC 分类: NYOJ 2014-01-02 22:21 112人阅读 评论(0) 收藏
#include<stdio.h> int num[100]; int pnum(int n,int v); int mv=0; int main(){ int n,v; scanf(&q ...
- NYOJ-79 拦截导弹 AC 分类: NYOJ 2014-01-01 23:25 167人阅读 评论(0) 收藏
#include<stdio.h> int main(){ int num[1000]={0}; int n,m,x,y; scanf("%d",&n); wh ...
- 【EntityFramwork--处理数据并发问题】
EntityFramwork--处理数据并发问题时支持乐观并发,即假定最佳场景(这里是指数据在更新过程中没有发生变化) 具体看<Beginning ASP.NET 4.5 Databases&g ...
- 查看语句运行时间异常的原因(SQLServer)
转载:http://www.cnblogs.com/fygh/archive/2012/01/17/2324926.html 查看语句运行时间异常的原因(SQLServer) 经常有开发同事反映如 ...
- springMVC+ibatis数据持久化入门级学习例子
1.web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version=" ...