这两天在搞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弹出框的更多相关文章

  1. js简单显示和隐藏div,触发超链接,动态更改button值,setInterval()简单使用,jquery easyui弹出框简单使用 .

    js简单显示和隐藏div .<!DOCTYPE html> .<html> .<head> .<meta charset="UTF-8"& ...

  2. easyui 弹出框调用外部js函数 提示“Microsoft JScript 运行时错误: 缺少对象”

    昨天遇见一个很诡异的问题 我用easyui做了一个网站,其中有一个a页面和一个b页面,我通过easyui的window功能,在a页面中弹出了一个b页面,在b页面中,我用到了一个外部js的函数c,我在b ...

  3. 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 ...

  4. jquery easyui 弹出消息框

    <html> <head> <!-- 导入easyui插件的js和css样式; --> <link rel="stylesheet" ty ...

  5. 弹出框中选项卡的运用(easyUI)

    先看一下页面效果: 此处有两个知识点:一个是弹出框的运用,一个是选项卡的运用 分析一下该HTML代码,最外面一个div是弹出框的,默认是关闭状态,可通过ID来控制弹出框的开关,该div的样式是easy ...

  6. 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-4 模态弹出框--结构分析

    模态弹出框--结构分析 Bootstrap框架中的模态弹出框,分别运用了“modal”.“modal-dialog”和“modal-content”样式,而弹出窗真正的内容都放置在“modal-con ...

  7. 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-3 模态弹出框

    模态弹出框(Modals) 这一小节我们先来讲解一个“模态弹出框”,插件的源文件:modal.js. 右侧代码编辑器(30行)就是单独引入 bootstrap 中发布出的“modal.js”文件. 样 ...

  8. 玩转Bootstrap(JS插件篇)-第1章 模态弹出框 :1-1导入JavaScript插件

    导入JavaScript插件 Bootstrap除了包含丰富的Web组件之外,如前面介绍的下拉菜单.按钮组.导航.分页等.他还包括一些JavaScript的插件. Bootstrap的JavaScri ...

  9. easyui tree datagrid动态添加表头和表格数据,动态弹出框,修改和删除按钮

    1.要有获取表头的URL和表格的URL 背景:点击树的一个节点,就加载一个表格,这个表格是动态的,表头和表格数据都是动态的 解决方案:需要两个URL,一个是获取表头的URL,一个是获取表格数据的URL ...

随机推荐

  1. 数字式PID控制的应用总结

    PID控制是一个二阶线性闭环控制器,通过调整比例.积分和微分三项参数,使得大多数的工业控制系统获得良好的闭环控制性能.PID控制优点:a. 技术成熟,b. 易被人们熟悉和掌握,c. 不需要建立数学模型 ...

  2. 用hibernate自动创建mysql表,添加失败org.hibernate.exception.SQLGrammarException

    今天遇到了一个很坑人的问题,从昨晚一直搞到今天早上,终于发现了,先整理下: [背景]:利用hibernate自动给mysql创建一个表,然后为表里面添加一行记录,非常的简单(当然其中还涉及到sprin ...

  3. sampler2d

    Here is the syntax for a sampler in Direct3D 9. sampler Name = SamplerType{   Texture = <texture_ ...

  4. PHP之set_error_handler()函数讲解

    定义和用法 set_error_handler() 函数设置用户自定义的错误处理函数. 该函数用于创建运行时期间的用户自己的错误处理方法. 该函数会返回旧的错误处理程序,若失败,则返回 null. 语 ...

  5. 【IOC--Common Service Locator】不依赖于某个具体的IoC

    你在你的应用程序应用IoC容器了吗,你是否希望不依赖于某个具体的IoC,微软的模式与实践团队在Codeplex上发布的Common Service Locator.Common Service Loc ...

  6. Unity3D TestTool Part _1

    一直想看看Unity3d官方推出的UnityTestTools的测试插件,今天有空尝试了一下. 一.Quick Start 1. create a plane position which trans ...

  7. springMVC+ibatis数据持久化入门级学习例子

    1.web.xml <?xml version="1.0" encoding="UTF-8"?> <web-app version=" ...

  8. Installing Lua in Mac

    Lua is distributed in source form. You need to build it before using it. Building Lua should be stra ...

  9. java核心技术记录之集合

    java库中的具体集合: 集合类型 描述 ArrayList 一种可以动态增长和缩减的索引序列 LinkedList 一种可以在任何位置进行高效地插入和删除操作的有序序列 ArrarDeque 一种用 ...

  10. lintcode:Minimum Subarray 最小子数组

    题目: 最小子数组 给定一个整数数组,找到一个具有最小和的子数组.返回其最小和. 样例 给出数组[1, -1, -2, 1],返回 -3 注意 子数组最少包含一个数字 解题: 和最大子数组 ,差不多的 ...