點(diǎn)擊打開鏈接在DWZ開發(fā)過程中經(jīng)常會(huì)遇到的一種情況就是:在navTab頁面中通過a標(biāo)簽打開一個(gè)dialog,在dialog層進(jìn)行操作后,需要對(duì)該dialog層進(jìn)行必要的刷新操作。我將方法整理在這里,請(qǐng)需要學(xué)習(xí)的孩子們看看哦。 1.首先講一下思路: 在非dialog頁面中,也就是navTab頁面中,將傳遞rel的值作為刷新的途徑。在那種情況下,rel值為navTab的navTabId,所以在dialog中,只要將dialogId獲取到,并作為rel值在dialog層傳遞即可。 2.其次給大家看看我的操作圖: 圖1-點(diǎn)擊navTab上的修改,進(jìn)入一級(jí)dialog頁面 圖2-點(diǎn)擊一級(jí)dialog的修改操作,進(jìn)入二級(jí)dialog的詳情修改頁面 說明:我的操作就是:打開navTab上的修改頁面,顯示一個(gè)dialog層的列表信息,然后再在一級(jí)dialog上點(diǎn)擊修改,打開二級(jí)dialog,在二級(jí)dialog上修改完畢后,關(guān)閉當(dāng)前的二級(jí)dialog,然后刷新一級(jí)dialog。 3.步驟: (1)在a鏈接中指定rel值(即將打開的dialog層的ID): 1 <a href ="score.do?method=goQueryRuleDetail" target="dialog" rel="firstDialogId" width="950" height="380" title="標(biāo)題">修改</a> (2)在dwz.dialog.js中修改部分代碼($.pdialog上一行): var currentDialogId = "";//2013-07-19 lucky add
1 open:function(url, dlgid, title, options) { 2 currentDialogId = dlgid;//新增部分,賦值 3 var op = $.extend({},$.pdialog._op, options); 4 var dialog = $("body").data(dlgid); 5 ……
1 ,getcurrentDialogId:function(){//獲取當(dāng)前窗口ID 2 return currentDialogId; 3 }, (3)一級(jí)dialog頁面,修改鏈接: 1 <a href="score.do?method=goModifyPage" target="dialog" id="goToModify">修改</a>
1 <script type="text/javascript"> 2 $(function(){ 3 var currentDialogId = $.pdialog.getcurrentDialogId();//獲取當(dāng)前窗口的ID 4 var tempHref = $("#goToModify").attr("href"); 5 $("#goToModify").attr("href",tempHref + "&rel="+currentDialogId); 6 }); 7 </script> (4)經(jīng)過后臺(tái)的傳遞,二級(jí)dialog頁面也已經(jīng)有rel的值了。此時(shí),要寫一個(gè)二級(jí)dialog提交后的回調(diào)函數(shù)。在dwz.ajax.js里面添加如下代碼: 1 /**2013-07-19 lucky add 2 * dialog層之上的dialog(二級(jí)dialog)表單提交回調(diào)函數(shù) 3 * 服務(wù)器回轉(zhuǎn)dialogId,可以重新載入指定的dialogId,statusCode=DWZ.statusCode.ok表示操作成功, 自動(dòng)關(guān)閉當(dāng)前dialog 4 * form提交后返回json數(shù)據(jù)結(jié)構(gòu),json格式和navTabAjaxDone一致 5 * @param json 6 */ 7 function dialogLayerAjaxDone(json){ 8 DWZ.ajaxDone(json); 9 if (json.statusCode == DWZ.statusCode.ok){ 10 if (json.dialogId){ 11 var dialog = $("body").data(json.dialogId); 12 $.pdialog.reload(json.forwardUrl, {dialogId: json.dialogId}); 13 } 14 $.pdialog.closeCurrent(); 15 } 16 } (5)二級(jí)dialog表單form回調(diào)函數(shù): onsubmit="return validateCallback(this, dialogLayerAjaxDone);" 注:二級(jí)dialog提交至后臺(tái)后,后臺(tái)需指定forwardUrl(重載URL)和dialogId(需要刷新的一級(jí)dialogId),返回的JSON數(shù)據(jù)格式為: 1 { 2 "statusCode":"",//狀態(tài)代碼 3 "message":"", 4 "dialogId":"",//需要刷新的一級(jí)dialogId 5 "callbackType":"", 6 "forwardUrl":"", 7 "url":"", 8 "urldata":"" 9 } 到這里差不多結(jié)束了。有問題的再用firebug調(diào)試調(diào)試吧。 學(xué)習(xí)建議:
轉(zhuǎn)自http://www.cnblogs.com/j-ui/p/3224953.html點(diǎn)擊打開鏈接
|
|