DWZ (JUI) 教程 DWZ中dialog層的刷新


在DWZ開發過程中經常會遇到的一種情況就是:在navTab頁面中通過a標簽打開一個dialog,在dialog層進行操作后,需要對該dialog層進行必要的刷新操作。

1.首先講一下思路:

 在非dialog頁面中,也就是navTab頁面中,將傳遞rel的值作為刷新的途徑。在那種情況下,rel值為navTab的navTabId,所以在dialog中,只要將dialogId獲取到,並作為rel值在dialog層傳遞即可。

2.其次給大家看看我的操作圖:

圖1-點擊navTab上的修改,進入一級dialog頁面

圖1-點擊navTab頁面的修改進入第一個dialog頁面

圖2-點擊一級dialog的修改操作,進入二級dialog的詳情修改頁面

圖2-點擊dialog層的修改,彈出的二級dialog頁面

說明:我的操作就是:打開navTab上的修改頁面,顯示一個dialog層的列表信息,然后再在一級dialog上點擊修改,打開二級dialog,在二級dialog上修改完畢后,關閉當前的二級dialog,然后刷新一級dialog。

3.步驟:

(1)在a鏈接中指定rel值(即將打開的dialog層的ID):

<a href ="score.do?method=goQueryRuleDetail" target="dialog" rel="firstDialogId"  width="950" height="380"  title="標題">修改</a>
View Code

(2)在dwz.dialog.js中修改部分代碼($.pdialog上一行):

var currentDialogId = "";//2013-07-19 lucky add
View Code

找到 open:function(url, dlgid, title, options),給剛剛聲明的currentDialogId賦值

open:function(url, dlgid, title, options) { currentDialogId = dlgid;//新增部分,賦值 var op = $.extend({},$.pdialog._op, options); var dialog = $("body").data(dlgid);

View Code

在open節點之后,新增節點

getcurrentDialogId:function(){//獲取當前窗口ID return currentDialogId; },

View Code

(3)一級dialog頁面,修改鏈接:

<a href="score.do?method=goModifyPage" target="dialog" id="goToModify">修改</a>
View Code

給該修改鏈接添加rel值:

<script type="text/javascript">
  $(function(){
      var currentDialogId = $.pdialog.getcurrentDialogId();//獲取當前窗口的ID
      var tempHref = $("#goToModify").attr("href");
      $("#goToModify").attr("href",tempHref + "&rel="+currentDialogId);
  });
  </script>
View Code

(4)經過后台的傳遞,二級dialog頁面也已經有rel的值了。此時,要寫一個二級dialog提交后的回調函數。在dwz.ajax.js里面添加如下代碼:

* dialog層之上的dialog(二級dialog)表單提交回調函數
   * 服務器回轉dialogId,可以重新載入指定的dialogId,statusCode=DWZ.statusCode.ok表示操作成功, 自動關閉當前dialog
   * form提交后返回json數據結構,json格式和navTabAjaxDone一致
   * @param json
   */
  function dialogLayerAjaxDone(json){
      DWZ.ajaxDone(json);
      if (json.statusCode == DWZ.statusCode.ok){
         if (json.dialogId){
             var dialog = $("body").data(json.dialogId);
             $.pdialog.reload(json.forwardUrl, {dialogId: json.dialogId});
         }
         $.pdialog.closeCurrent();
     }
 }
View Code

(5)二級dialog表單form回調函數:

onsubmit="return validateCallback(this, dialogLayerAjaxDone);"
View Code

注:二級dialog提交至后台后,后台需指定forwardUrl(重載URL)和dialogId(需要刷新的一級dialogId),返回的JSON數據格式為:

{
     "statusCode":"",//狀態代碼
     "message":"",
     "dialogId":"",//需要刷新的一級dialogId
     "callbackType":"",
     "forwardUrl":"",
     "url":"",
     "urldata":""
 }
View Code


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM