2014-03-28 61 views
0

我正在通過VB代碼調用數據庫的asp.net項目上工作。一旦成功請求,div必須通過JQuery離開動畫。從頁面加載的VB代碼調用JS

例如。

VB代碼:

If Confirmationcode = Passcode.text Then 
     'Perform the animation here ... NextPage(); 
     'Registerstartupscript doesnt work as this is not in the page_load event 
     Response.Redirect("Default.aspx", False) 
    End If 

JS:

<script type="text/javascript"> 
    function NextPage() { 
     $('.Wrapper').animate({ left: '-150%' }, 800); 
    }; 
    </script> 

,因爲它是非常簡單的:

動畫必須執行,而一旦完成,則新然後aspx頁面必須加載。

+1

我認爲你需要學習客戶端代碼和服務器之間的差異端代碼 - 以及ASP.NET頁面生命週期如何工作 – freefaller

+0

'Page.ClientScript.RegisterStartup腳本(我。[GetType](),「點擊」,「NextPage();」,True)'..這在C#中工作,並可能在這裏工作... – Bhavik

回答

0

所以基本上你不應該使用Response.Redirect這種情況,因爲你想先執行jQuery然後只有頁面應該重定向。

嘗試這樣:

VB代碼:

If Confirmationcode = Passcode.text Then 
    'Perform the animation here ... NextPage();//don't do this 
    int flagAnimate = true;//set one flag here instead which will tell us whether to animate the div or not 
    'Registerstartupscript doesnt work as this is not in the page_load event//not needed 
    //Response.Redirect("Default.aspx", False) //no need to redirect from here 
End If 

JS:

<% if(flagAnimate == true){ %> 
    <script type="text/javascript"> 
    //perform your animation here 
    function NextPage() { 
     $('.Wrapper').animate({ left: '-150%' }, 800); 
    }; 
    NextPage();//by calling this function 
    //and then redirect the page by using the following code 
    self.location.href='/Default.aspx' 
    </script> 
<% } %> 
+0

你是一個傳奇!謝謝,這解決了我所有的疑問和我在ASP中不太明白的東西,感覺非常好,讓空白填滿! :) 謝謝!! – Killua

+0

有一個問題,當頁面按鈕點擊刷新時,動畫不起作用。無論如何要讓動畫在頁面重定向之前實際執行? – Killua

+0

是的..使用'setTimeout(function(){self.location.href ='/ Default.aspx';},900);'而不是'self.location.href ='/ Default.aspx''現在頁面只會在900毫秒後刷新。 – gaurav