• DWZ中刷新dialog的方案解决


     

    dialogID    navTabId   分析
    在A页面有一个链接或者按钮 打开 一个dialog或者一天tab 页面  这时候在这个连接上加个属性 rel=“id名字”
    这时候 你打开的dialogid 或者navTabId 就是 rel 里面的名字 你只要把 要刷新的id 当参数放进去就ok了

    在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();
            }
        }
    }
    复制代码

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

    删除操作:

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

    添加和修改的Form标记中

    <form method="post" action="demo/editUser" class="pageForm required-validate" onsubmit="return validateCallback(this, dialogAjaxDoneFather)">

    在回调json中,注意一定要返回需要刷新的父dialog的id,即

    "navTabId":"dialogId"

  • 相关阅读:
    Android 开发工具类 06_NetUtils
    Android 开发工具类 05_Logcat 统一管理类
    Android 开发工具类 04_KeyBoardUtils
    Android 开发工具类 03_HttpUtils
    Android 开发工具类 02_DensityUtils
    Android 开发工具类 01_AppUtils
    APP 渠道推广【摘自网络】
    Android SDK 在线更新镜像服务器资源
    使用 Chrome 生成 UUID
    解决div里插入img下边缝隙问题
  • 原文地址:https://www.cnblogs.com/xiaoan521/p/3554768.html
Copyright © 2020-2023  润新知