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_