DWZ (JUI) 教程 dialog 刷新
最近有朋友问到 有没有dialog 刷新的方法, 在原先的dialog是有刷新的方法的 reload:function(url, options){
但是不能 根据 dialog id 进行刷新 ,其实简单封装一下就可以了,希望对大家有帮助。
reloadDialog:function(dialogId){
var dialog = $("body").data(dialogId);
if(dialog){
$.pdialog.reload(dialog.data("url"),{dialogId:dialogId});
}
},
这是我简单封装的方法 ,加入到 dwz-dialog.js 里就行了。
大家好好看看这里的源码,看看dwz是如何存放 dialog,url 等属性的 ,就可以自己封装出来自己想要的方法了。
//------------------------------------------------------
法1:手写JS重新加载第一个dialog(可能MASK还不能为TRUE)
$.pdialog.reload(url,data,dlid) 刷新dlid指定的dialog,url:刷新时可重新指定加载数据的url, data:为加载数据时所需的参数。
法2:手写JS关闭第一个dialog,再打开
$.pdialog.close(dialog); 参数dialog可以是弹出层jQuery对象或者是打开dialog层时的dlgId.
$.pdialog.open(url, dlgId, title, options);
/option里可以写MASK属性/
大哥您好,我也遇到这个问题,手写JS我试过了,我写在第二个dialog的close事件(close属性)里面,用的是 $ . pdialog . open这个函数,关闭第二个dialog时重新打开第一个dialog,可以实现刷新和mask=true,但是第一个dialog的背景却没有被遮罩,不知道如何解决呢?请大哥指教,谢谢!
不是很明白,不过之前我试过好像不能够同时显示两个dialog 的MAST都为true
$.pdialog.open('fn_deal/fn_adm/jb_stu_manage_import_1.php','dialog_id',"这是标题",{mask:true});
//-------------------------------------------------------------
dwz中权限控制与跳转
很多人不明白用dwz要如何在没有登录的时候跳转到登录页面,没有权限的时候弹出提示。
其实,作者在设计的时候,已经完全考虑到了这些需求。
不管是navTab还是dialog,dwz的页面加载最终都是通过loadUrl函数来实现,打开loadUrl
success: function(response){
var json = DWZ.jsonEval(response);
if (json.statusCode==DWZ.statusCode.timeout){
alertMsg.error(DWZ.msg("sessionTimout"), {okCall:function(){
DWZ.loadLogin();
}});
} if (json.statusCode==DWZ.statusCode.error){
if (json.message) alertMsg.error(json.message);
} else {
$this.html(response).initUI();
if ($.isFunction(callback)) callback(response);
你会发现其实服务器端响应对于打开页面也是适用的,也就是打开navTab和dialog时,后台也可以返回JSON来控制加载,很多人不知道这点。
有了这个,权限控制就变得异常简单,如果没有登录,返回的json就设置statusCode为timeout,这样就会跳转到登录页面;如果没有权限,则设置statusCode为error,这样就能弹出提示框,这里可以扩展一下,因为这个时候虽然页面没有加载,但是navTab或者dialog还是打开了,加一句判断关闭就OK了。
//------------------------------------------------------------------
我想局部刷新一个弹出框,用$.pdialog.reload(url,data,dlid),dlid是指定的dialogID,我就是不知道dlid怎么获取?
dialogID 是这样的
比如我页面有个连接或按钮打开 一个dialog 这时候在这个连接上加个属性 rel=“id名字”
这时候 你打开的dialogid 就是 rel 里面的名字 你只要把 要刷新的id 当参数放进去就ok了
nvtab也是一样的
//----------------------------------------------------------------------
dwz.ajax.js
/**
* 处理dialog弹出层上的查询, 会重新载入当前dialog:如弹出窗口上有查询内容及按钮,点击查询后重新载入
* @param {Object} form
*/
function dialogSearch(form){
var $form = $(form);
if (form[DWZ.pageInfo.pageNum]) form[DWZ.pageInfo.pageNum].value = 1;
$.pdialog.reload($form.attr('action'), {data: $form.serializeArray()});
return false;
}
function dwzSearch(form, targetType){
if (targetType == "dialog") dialogSearch(form);
else navTabSearch(form);
return false;
}
先试一下用弹出窗品点查询后是否能刷新
<form rel="pagerForm" method="post" action="demo/database/dwzOrgLookup.html" onsubmit="return dwzSearch(this, 'dialog');">