EasyUI Dialog 学习总结

Basic Dialog

http://www.jeasyui.net/demo/519.html

<!DOCTYPE html>
<html>
<head>
	<meta charset="UTF-8">
	<title>Basic Dialog - jQuery EasyUI Demo</title>
	<link rel="stylesheet" type="text/css" href="../../themes/default/easyui.css">
	<link rel="stylesheet" type="text/css" href="../../themes/icon.css">
	<link rel="stylesheet" type="text/css" href="../demo.css">
	<script type="text/javascript" src="../../jquery.min.js"></script>
	<script type="text/javascript" src="../../jquery.easyui.min.js"></script>
</head>
<body>
	<h2>Basic Dialog</h2>
	<p>Click below button to open or close dialog.</p>
	<div style="margin:20px 0;">
		<a href="javascript:void(0)" class="easyui-linkbutton" onclick="$('#dlg').dialog('open')">Open</a>
		<a href="javascript:void(0)" class="easyui-linkbutton" onclick="$('#dlg').dialog('close')">Close</a>
	</div>
	<div id="dlg" class="easyui-dialog" title="Basic Dialog" data-options="iconCls:'icon-save'" style="width:400px;height:200px;padding:10px">
		The dialog content.
	</div>
</body>
</html>

========

EasyUI Dialog 对话框

http://www.jeasyui.net/plugins/181.html

扩展自 $.fn.window.defaults。通过 $.fn.dialog.defaults 重写默认的 defaults。

对话框(dialog)是一个特殊类型的窗口,它在顶部有一个工具栏,在底部有一个按钮栏。默认情况下,对话框(dialog)只有一个显示在头部右侧的关闭工具。用户可以配置对话框行为来显示其他工具(比如:可折叠 collapsible、可最小化 minimizable、可最大化

maximizable,等等)。

依赖
window
linkbutton

用法
通过标记从已有的 DOM 节点创建对话框(dialog)。下面的实例演示了一个带有可调整尺寸特性的模态对话框。

Dialog Content.

使用 javascript 创建对话框(dialog)。现在让我们创建一个模态对话框,然后调用 ‘refresh’ 方法来通过 ajax 加载它的内容。

Dialog Content.
$('#dd').dialog({ title: 'My Dialog', width: 400, height: 200, closed: false, cache: false, href: 'get_content.php', modal: true }); $('#dd').dialog('refresh', 'new_content.php');

========

easyUI创建dialog弹框

https://www.cnblogs.com/mr-wuxiansheng/p/6212457.html

1.在当前页面必须有一个DIV

<div id="dialog-alarm-detail"></div>

2.DIV这个可以弹出对话框

//DIV对象
var detailLog= $(’#dialog-alarm-detail’).dialog(
{
title: ‘保证金明细详情’,
width: ‘60%’,
height:‘60%’,
modal: true,
closable:true,
href: parent.parent.baseUrl+“customer/bail/bailInfo”,

3.通过web端的跳转到html页面

/**
 * 进入到保证金明细的详情查询的页面
 * 
 */
@RequestMapping(value = "bailInfo")
public String bailInfo(Model model) {
    return "user/bail/bailInfo";
}

4.在用html页面里面的元素,接收返回的内容

onLoad: function () {
$.ajax({
type: “POST”,
async: false,
success: function (result) {
//新创建的格式化的表格
$(’#detail’).datagrid({
idField : ‘id’, // 只要创建数据表格 就必须要加 ifField
// title : ‘保证金明细详情’,
width: ‘100%’,
height:‘100%’,
url : parent.parent.baseUrl+‘customer/bail/bailDetailsInfo?customerId=’+customerId+’&&bailClass=’+bailClass+’&&agencyId=’+agencyId,
method : ‘GET’,
fitColumns : true,
striped : true, // 隔行变色特性
nowrap : false,
loadMsg : ‘数据正在加载,请耐心的等待…’,
rownumbers : true,
sortName : ‘crtTime’,
sortOrder : ‘desc’,
rowStyler : function(index, record) {},
columns : [ [{
field : ‘updTime’,
title : ‘冻结时间’,
width : 50,
align : ‘center’,
}, {
field : ‘bailStatus’,
title : ‘保证金冻结状态’,
width : 50,
align : ‘center’,
formatter : statusFot
}, {
field : ‘lockBail’,
title : ‘保证金冻结金额’,
width : 80,
align : ‘center’
}, {
field : ‘goodsName’,
title : ‘拍卖名称’,
width : 80,
align : ‘center’
}]],
pagination : false,
pageSize : 10,
pageList : [ 5, 10, 15, 20, 50 ],
});

                     }
                 });
             },
        buttons : [ {
            text : "关闭",
            handler : function() {
                detailLog.dialog('close');
            }
        } ]

});

5.通过width和hight调整样式

========

Easyui 创建dialog的两种方式,以及他们带来的问题

$(’#yy’).dialog(‘open’);//打开dialog

这地方要注意,加入你关闭窗口的地方使用KaTeX parse error: Expected 'EOF', got '#' at position 3: ('#̲yy').dialog('de…(’#yy’).dialog

(‘close’);close即是把当前窗口隐藏,但没有销毁,所以你可能遇到的问题就是,下次再次打开这个窗口的时候,里面还是上次的内容。如果使用destroy,那么整个dialog组件都被销毁了,所以只能使用第一次,第二次再怎么点也没用。那有解决的办法吗,肯定是有

的。

方法二:

dialog的第二种创建方式就是,创建一个临时的对话窗口,不用在jsp写个div啥的。直接在js中写就可以了,如下

$(’

’).dialog({

…//添加一些属性,比如加载,按钮等

}

这地方关闭的时候可以destroy了

我在最外层的div中写个overflow:hidden,目的就是让下面的内容超出框架后,使用滚动条,但大家要注意,使用滚动条,最起码这个框架的位置得是固定的吧,即需要在div外层的div给一个postion=relative啊,当然firefox和谷歌只要不是IE内核的,即使你这地方

没有固定位置也没问题,人家浏览器强大嘛。但问题就在IE中,不理你这套,必须按照规矩来,那怎么办呢,反正我是弄了很久。

方法一:放弃使用临时dialog,即第二种创建方式,使用第一种创建方式,但每次打开一个dialog都要刷新才能用,太蛋疼啦。

方法二:很简单

$(’

’).dialog({

…//添加一些属性,比如加载,按钮等

}

对就只要在上面的 div后面加个style="position:relative“就搞定了,希望这能帮助在兼容性折磨下的你吧

转自:http://www.ithao123.cn/content-5611961.html

dialog创建方法有两种,一种就是直接 ( d i v ) . d i a l o g ( ) d i v , &lt; d i v i d = t e s t &gt; &lt; / d i v &gt; , (‘div’).dialog()方式创建,一种就是在页面中写一个div,如&lt;div id=”test”&gt;&lt;/div&gt;, (“#test”).dialog().第一种方法在关闭过后,div就会消失,而第二种方法在关闭过后,div仍然存在,但是使用destroy方法后,会使

这个div方法不可用.

使用第二种关闭dialog,直接$(id).dialog(“close”)就可以直接关闭

主要说的是第二种,在第二种当中,如果是要在定义的按钮事件中执行关闭操作的话,可以这样写

$(this).closest(.window-body).dialog(“close”)

如果是在dialog事件中关闭dialog可以这样写

( &quot; t h i s &quot; ) . d i a l o g ( &quot; c l o s e &quot; ) , d i a l o g d i a l o g 使 d i a l o g i d d i v d i a l o g d i a l o g c l o s e i d 使 (&quot;this&quot;).dialog(&quot;close&quot;) 为什么可以这样写,我们可以在生成一个dialog的时候,跟踪dialog的结构,比如我使用第二种方法生成一个dialog,那么带有id的div在生成dialog后,会变成如下所示 dialog-close 如图所示,如果是id创造的话,可以直接使用 (“#add”).dialog(“close”)关闭,所以$(this).closest(.window-body).dialog(“close”)也可以关闭

========

jquery easyui dialog不超出父容器以及随浏览器缩放

https://blog.csdn.net/tnjun123456/article/details/7204224

code:

 <style type="text/css">
     body{width:100%;height:100%;}
     TABLE{WIDTH:100%;}
     #divDialog{padding:5px;}
 </style>
 <script type="text/javascript">
 function fixWidth(percent){
     return document.body.clientWidth * percent;
 }
 function openDivDialog(){
     $("#divDialog").dialog("open");
 }
 function closeDivDialog(){
     $("#divDialog").dialog("close");
 }
 $(function(){
     $(window).resize(function(){
	   $("#divDialog").dialog({
		width:fixWidth(0.4)
	   });
     });
     $("#divDialog").dialog({
         title:"对话框",
	  collapsible:true,
	  minimizable:true,
	  maximizable:true,
	  resizable:true,
	  //modal:true, 是否是模式对话框
	  width:fixWidth(0.4),
	  height:200,
	  //fitColumns:true,适应父容器的大小
	  doSize:true,

	  toolbar:[{
			text:"Add",
			iconCls:"icon-add",
			handler:function(){
			    alert("这是单击add按钮事件");
			}
		     },"-",{
			text:"save",
			iconCls:"icon-save",
			handler:function(){
			    alert("这是单击save按钮事件");
		     }
		    }],

	  buttons:[{
			text:"Ok",
			iconCls:"icon-ok",
			handler:function(){
			    alert("这是单击ok按钮事件"+$("#divDialog"));
			}
		     },{
			text:"Cancle",
			handler:function(){
			     alert("这是单击cancle按钮事件,关闭dialog");
			     $("#divDialog").dialog("close");
			}
		    }],
	    //事件绑定
	    onMove:function(left,top){
		var right,bottom;
		//alert($("body").width()+"---"+left +"----"+ $("#divDialog").width()+"="+($("#divDialog").width()+left));
		var bodyWidth = $("body").width();
		var bodyHeight = $("body").height();
		var dialogwidth = $("#divDialog").width();
		var dialogHeight = $("#divDialog").height();
		if(left < 0){
		    $("#divDialog").dialog("move",{left:0,top:top});
		}else if((left + dialogwidth) > (bodyWidth - 50)){
		    right = bodyWidth - dialogwidth - 50;
		    $("#divDialog").dialog("move",{left:right,top:top});
		}
		if(top < 0){
		    $("#divDialog").dialog("move",{left:left,top:0});
		}else if(top > (bodyHeight - dialogHeight - 50 )){
		    bottom = bodyHeight - dialogHeight - 50;
		    $("#divDialog").dialog("move",{left:left,top:bottom});
		}
	    }
     });
 });
 </script>
</head>
<body onresize="openDivDialog();">
    <h1>Dialog</h1>
 <div>
     <a href="#" onclick="openDivDialog();">open</a>
     <a href="#" onclick="closeDivDialog();">close</a>
 </div>
 <div id="divDialog" icon="icon-save">
	<TABLE>
	   <TR align="center" bgColor="#dcdcdc">
                <TD>用户编号</TD>
                <TD>试用时间</TD>
                <TD>转正时间</TD>
                <TD>性别</TD>
                <TD>姓名拼音</TD>
                <TD>生日时间</TD>
                <TD>民族</TD>
                <TD>身高</TD>
            </TR>
            <TR>
                <TD style="WIDTH: 75px">2000001</TD>
                <TD>1997-3-13 0:00:00</TD>
                <TD>1997-3-13 0:00:00</TD>
                <TD>1</TD>
                <TD>WZJ</TD>
                <TD>1965-3-13 0:00:00</TD>
                <TD>汉</TD>
                <TD>171</TD>
            </TR>
            <TR>
                <TD style="WIDTH: 75px">2000045</TD>
                <TD>2001-2-15 0:00:00</TD>
                <TD>2001-3-15 0:00:00</TD>
                <TD>0</TD>
                <TD>WY</TD>
                <TD>1978-8-5 0:00:00</TD>
                <TD>汉</TD>
                <TD>162</TD>
            </TR>
            <TR>
                <TD style="WIDTH: 75px">2000046</TD>
                <TD>2001-2-23 0:00:00</TD>
                <TD>2001-3-23 0:00:00</TD>
                <TD>0</TD>
                <TD>LQ</TD>
                <TD>2001-2-23 0:00:00</TD>
                <TD>汉</TD>
                <TD>171</TD>
            </TR>
	</TABLE>
 </div>
</body>

========

easyui中对于dialog页面传值的接收

近期项目中,使用easyui制作了两个页面,其中A页面会弹出B页面,但是A页面会传递参数至B页面,在接收传递参数时,出现了一个小的波折

经过看API发现

dialog的功能是将B页面嵌入至A页面,这样,A页面作为B页面的父容器,所有的元素均可以被B页面访问

所以,之前的通过js获取页面参数方法就不适用了,因为B页面在js端获取的href实际上为A页面的href

那么问题来了:我怎么获取B页面的链接参数呢?

其实很简单,只要找到B页面的存放容器即可:

代码如下:

页面A代码:

//详情查看
function goToDetail(val) {
//var url = ‘…/Stock/CheckInventory/RandomCheckInventoryDetail.html?checksysno=’ + val;
var url = ‘RandomCheckInventoryDetail.html’;
var title = ‘随机盘查明细[’ + val + ‘]’;

        //setPopFrameUrl(url, 1000, 550, title);
        $('#dd').dialog({
            title: title,
            width: 1000,
            height: 550,
            closed: false,
            cache: true,
            collapsible:true,
            href: url,
            queryParams: { checksysno: val },
            modal: true
        });
    }

页面B获取参数方法:

//获取页面url参数
function getQueryParam(name) {
var obj = $(’#dd’).dialog(‘options’);
var queryParams = obj[“queryParams”];

        return queryParams[name];
    }

其实,主要的就是A页面方法中的queryParams属性设置

========

猜你喜欢

转载自blog.csdn.net/bcbobo21cn/article/details/88356582
今日推荐