心得體驗:
DWZ依賴特定的HTML結構,因此必定要注意項目中的HTML結構,多用firebug查看,還有若是使用一些組件的時候出現問題,能夠查看下返回JSON格式是否符合組件規定的JSON格式,不少都是由於這個問題形成的。
DWZ分navTab標籤頁和dialog彈出層,因此表單的回調函數應該在navTab頁面上使用navTabAjaxDone,在dialog頁面上使用dialogAjaxDone。
問題記錄:
Q1:dialog加載的表格數據批量操做有問題,獲取不到id。
解決:
在操做里加入targetType="dialog" Q2: dialog加載的表格數據排序有問題,點須要排序的表頭沒反應,已肯定後臺沒問題。
解決:
在外層table里加入targetType="dialog" Q3:dialog加載的表格數據分頁問題,點了下一頁沒反應
解決:
分頁那裏須要設置爲<div class="pagination" targetType="dialog" totalCount="{$totalCount}" numPerPage="{$numPerPage}" pageNumShown="10" currentPage="{$currentPage}"></div>
Q4:在正式版本中,dialog層操做成功後,層不會自動關閉,主頁不刷新
解決:表格結構以下
<form method="post" action="__URL__/edit/navTabId/datagrid/callbackType/closeCurrent" class="pageForm required-validate" onsubmit="return validateCallback(this,dialogAjaxDone)"></form>
影響關閉:callbackType/closeCurrent
影響刷新:navTabId/datagrid(主頁頁面名稱)
Q5:二級dialog操做成功後,一級dialog裏的數據表格不刷新
解決:目前沒找到dwz自帶的方法,暫用擴展方法
頁面JS:
function dialogAjax(json){
dialogAjaxDone(json); // 用於二級dialog層關閉
$.pdialog.reloadDialog('dialog1');
}
擴展方法,放在dwz.dialog.js中:
reloadDialog:function(dialogId){
var dialog = $("body").data(dialogId);
if(dialog){
$.pdialog.reload(dialog.data("url"),{dialogId:dialogId});
}
}
調用函數:
<a class="button" href="url" target="dialog" rel="dialog2" ><span>打開窗口</span></a>//打開二級dialog,rel="dialog2"爲二級dialog的id標識
<a href="url" target="ajaxTodo" title="你肯定要刪除嗎?" callback="dialogAjax('dialog1')">刪除</a>