2012-04-18 34 views
0

在我正在構建的頁面上,我有四個顯示/隱藏(visible =「true」|| visible =「false」)特定div的按鈕。我想要的是在調用AJAX函數之前調用我自己的自定義函數,它將當前可見div的不透明度設置爲零,然後顯示加載圖像,最後在AJAX函數完成後調用另一個自定義函數,該函數動畫「to 「顯示div從零不透明度到1,從左到右。我試圖完成的是在網頁中的Windows Phone 7類效果。那麼,我有什麼想法可以做到這一點?在ASP.NET AJAX函數中添加自己的javascript函數?

回答

1

如果您正在使用AJAX Asp.net然後喲可以通過以下步驟

註冊您的這些聲明JavaScript方法實現這一目標。

Sys.WebForms.PageRequestManager.getInstance().add_beginRequest(beginRequestHandle); 
    Sys.WebForms.PageRequestManager.getInstance().add_endRequest(endRequestHandle); 

的註冊方法

function beginRequestHandle(sender, Args) 
    { 
     alert("Begin Request Handle called."); 
    } 

    function endRequestHandle(sender, Args) 
    { 
     alert("End Request Handle called."); 
    } 
+0

會在哪裏註冊的方法最好的地方? Page_Load中? – 2012-04-18 07:04:48

+1

可能位於頭標籤中,或者只是在身體標籤關閉之前。你只是想方設法,他們是可用的,然後再發出ajax請求 – Adil 2012-04-18 07:12:08

+0

我收到錯誤「系統」是未定義的? – 2012-04-18 07:21:57

0

定義您可以通過在代碼編寫自定義的AJAX處理程序做到這一點。例如,在你的CS文件:

[WebMethod] 
public static bool CustomAjaxMethod(string arg) 
{ 
    // do work 
    return true; 
} 

然後,在你的aspx文件:

<input type="button" value="Do Ajax Call" onclick="doWork();" /> 

而且在javascript:

function doWork() { 
    // do your 1st animation here 
    PageMethods.CustomAjaxMethod('foo', callback); 
} 

function callback(result, userContext, methodName) { 
    if (methodName == 'CustomAjaxMethod') { 
    // may want to check result here 
    // do your 2nd animation here 
    } 
}