标签:
一、 rel补充
navTab
1. navTab.reload(forwardUrl, {}, navTabId); 重新载入指定的navTab
2. navTab.reloadFlag(navTabId); 把指定navTab页面标记为需要“重新载入”。注意navTabId不能是当前navTab页面的
3. navTabPageBreak(args);
重新载入当前navTab页面 4. navTabAjaxDone(json);
DWZ框架中预定义的表单提交回调函数.
function navTabAjaxDone(json){
DWZ.ajaxDone(json);
if (json.statusCode == DWZ.statusCode.ok){
if (json.navTabId){ //把指定navTab页面标记为需要“重新载入”。注意
navTabId不能是当前navTab页面的
navTab.reloadFlag(json.navTabId); } else { //重新载入当前navTab页面
navTabPageBreak(); }
if ("closeCurrent" == json.callbackType) {
setTimeout(function(){navTab.closeCurrentTab();}, 100);
} else if ("forward" == json.callbackType) {
navTab.reload(json.forwardUrl); } } } dialog
1.$.pdialog.reload(url,data,dlid); 2.dialogAjaxDone(json); /**
* dialog上的表单提交回调函数
* 服务器转回navTabId,可以重新载入指定的
navTab.statusCode=DWZ.statusCode.ok表示操作成功, 自动关闭当前dialog * form提交后返回json数据结构,json格式和navTabAjaxDone一致 */
function dialogAjaxDone(json){
DWZ.ajaxDone(json);
if (json.statusCode == DWZ.statusCode.ok){
if (json.navTabId){
navTab.reload(json.forwardUrl, {}, json.navTabId);
}
$.pdialog.closeCurrent(); } }
二、 二级标签刷新的几种方式
1. $div.load(url,data,function(response,status,xhr));
load() 方法通过 AJAX 请求从服务器加载数据,并把返回的数据放置到指定的元素中。如果提供的数据是对象,则使用 POST 方法;否则使用 GET 方法。由 .load() 取回的元素可能与由浏览器直接取回的文档不完全相同,故需酌情使用。参考资料:http://www.w3school.com.cn/jquery/ajax_load.asp
2. $aTag.click();
通过找到当前页面对应的二级标签的链接,触发click事件重新加载子页面,不推荐。例:
// function refreshTable(url){
// $this = $("#qualPilotStayListTr").parent()
.parent("div[class=tabsContent]")
.parent("div[class=tabs]").find("a[id=index0]");
// $this.attr("href",url); // $this.click(); // }
3. $form.submit(),更改form中action属性值、添加url隐藏域
一种迂回的刷新方式,采用此方法的原因是为了避免太多的改动,尤其是对于一些带有分页功能的页面。由于不是很推荐使用,所以本文就不细述了。 4. $div.loadUrl(url,data,callback);
DWZ 1.3版中已经具有局部刷新功能,推荐使用。例:
$topDiv.parent().loadUrl($(form).attr("action"),
$(form).serializeArray(), function(){
$topDiv.parent().find("[layoutH]").layoutH(); });
三、 上传附件回调刷新
因为Ajax不支持enctype="multipart/form-data" 所以用隐藏iframe来处
理无刷新表单提交.
<form method="post" action="url" class="pageForm
required-validate" enctype="multipart/form-data" onsubmit="return iframeCallback(this);"> 或
<form method="post" action="url" class="pageForm
required-validate" enctype="multipart/form-data" onsubmit="return iframeCallback(this, [navTabAjaxDone/dialogAjaxDone]);"> 回调函数可自定义。 服务器端响应:
隐藏iframe来处理无刷新表单提交时,服务器端需要返回以下js代码: <script type="text/javascript">
var statusCode="200"; var message="操作成功"; var navTabId=""; var forwardUrl="";
var callbackType="closeCurrent"; var response = {
statusCode:statusCode, message:message, navTabId:navTabId,
forwardUrl:forwardUrl, callbackType:callbackType };
if(window.parent.donecallback)
window.parent.donecallback(response);
</script>
在Action类中的处理: 配置一条result,如下:
@Results({ //??
@Result(name="updateSuccess", location = "/standard/ajaxUpdateDone.jsp"),
//?? })
对应的方法中返回result对应的name值return"updateSuccess";
四、 页面高度自适应,LayoutH
例1:页面局部刷新后回调使用,解决页面布局错乱的问题。
$topDiv.parent().loadUrl($(form).attr("action"),
$(form).serializeArray(), function(){
$topDiv.parent().find("[layoutH]").layoutH(); });
例2:页面div隐藏后高度自适应。
重新设置div或者table的layoutH属性后,再次调用方法layoutH(),页面就可以按照新设的layoutH来计算其要显示的高度。
function showOrHide(){
$topDIV.find(".renyuanxinxiyincang").toggle(); if(flag){//隐藏
$topDIV.find("#upanddown").attr("src","xxx.jpg");
$topDIV.find(".pageContent").attr("layoutH","35");
$topDIV.parent().find("[layoutH]").layoutH(); flag = false; }else{//显示
$topDIV.find("#upanddown").attr("src","xxx_03.jpg"); $topDIV.find(".pageContent").attr("layoutH","125"); $topDIV.parent().find("[layoutH]").layoutH(); flag = true;
}
}
原文:http://wenku.baidu.com/link?url=X2mCH2DQ1AhmKN5f_wEAx7DhSP-6rq5YcXcq61U6iR-jYl5UV1vmlQ0SCnYuJrUaqCaFWqz881uC5Jgau1lu75TDF-DYAn8Y7CagzyVJDW_
标签:
原文地址:http://my.oschina.net/u/232595/blog/389758