zoukankan      html  css  js  c++  java
  • DWZ (JUI) 教程 dwz框架 刷新dialog解决方案

    在DWZ中进行ajax表单提交后,通过回调函数来返回状态结果,以及返回是否需要刷新父页的navTabId。
           DWZ给我们提供了两个回调函数,一个是子窗口为navTab的navTabAjaxDone,一个是子窗口为dialog的dialogAjaxDone,但这两个回调函数都有同一样的缺陷:就是父窗口必须是navTab,也就是说只能刷新navTab,如果父窗口为dialog,则此父dialog是刷新不了的。
          如果我们是在一个弹出的dialog中,进行添加、删除和修改操作,操作完成后,这个dialog是无法刷新的。删除就在此dialog中完成,删除后只刷新不关闭当前dialog。添加和修改操作可能要再弹出一个dialog来完成,也就是说出现了二级dialog,操作完成后,需要关闭当前子dialog,刷新父dialog。
          针对这种情况 ,我们自己再添加一个回调函数,来适应这种情况需要。
          打开DWZ.ajax.js这个文件,找到dialogAjaxDone这个函数,在它的下方,我们添加一个新回调函数,假设取名为dialogAjaxDoneFather;

    /*在对话框中操作数据,并刷新对话框*/ 
    function dialogAjaxDoneFather(json) { 
    DWZ.ajaxDone(json); 
    if (json.statusCode == DWZ.statusCode.ok) { 
    if (json.navTabId) { 
    var dialog = $("body").data(json.navTabId); 
    $.pdialog.reload(dialog.data("url"), { data: {}, dialogId: json.navTabId, callback: null }) 
    } 
    if ("closeCurrent" == json.callbackType) { 
    $.pdialog.closeCurrent(); 
    } 
    } 
    }
    View Code

         这样我们在dialog中进行ajax表单提交,就可以使用这个dialogAjaxDoneFather回调函数了。
         删除操作:

    <li><a class="delete" href="demo/delUser?id={uid}" callback="dialogAjaxDoneFather" target="ajaxTodo" title="确定要删除吗?"><span>删除用户</span></a></li>
    View Code

         添加和修改的Form标记中

    添加和修改的Form标记中
    [html]
    <form method="post" action="demo/editUser" class="pageForm required-validate" onsubmit="return validateCallback(this, dialogAjaxDoneFather)"> 
    View Code

          如果表单返回类型是iframeCallback ,需写成iframeCallback(this,callback); 即回调函数必须是 callback, 不能自定义名称,而且上述方法要写在页面内。
    在回调json中,注意一定要返回需要刷新的父dialog的id,即
    "navTabId":"dialogId" 

  • 相关阅读:
    Java Switch
    老徐杂谈:年后的第一个双休,你在做什么?
    测试必备技能系列4:如何用SSH向linux服务器上传下载文件
    Git从零教你入门(4):Git服务之 gogs部署安装
    你知道哪些linux命令,能把文件上传到远程linux服务器
    一个7年以上测试工程师的2016思考
    老徐谈谈软件测试职业的现状,以及市场情况
    mac 远程连接服务器
    Git从零开始怎么学?
    分享 | Git常用的一些命令
  • 原文地址:https://www.cnblogs.com/donchen/p/4112780.html
Copyright © 2011-2022 走看看