心得体验:
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>