1、 rel补充 javascript
navTab java
1. navTab.reload(forwardUrl, {}, navTabId); 从新载入指定的navTab jquery
2. navTab.reloadFlag(navTabId); 把指定navTab页面标记为须要“从新载入”。注意navTabId不能是当前navTab页面的 ajax
3. navTabPageBreak(args); json
从新载入当前navTab页面 4. navTabAjaxDone(json); 浏览器
DWZ框架中预约义的表单提交回调函数. 服务器
function navTabAjaxDone(json){ 数据结构
DWZ.ajaxDone(json); 框架
if (json.statusCode == DWZ.statusCode.ok){ jsp
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(); } }
2、 二级标签刷新的几种方式
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(); });
3、 上传附件回调刷新
由于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";
4、 页面高度自适应,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_