DWZ根据ID刷新 dialog

来源:互联网 发布:怎样在淘宝用网银卡 编辑:程序博客网 时间:2024/05/17 23:27
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');">
原创粉丝点击