2013-12-19 47 views
1

我想問一下在ASP.NET按鈕單擊事件完成後我們是否可以做一個JavaScript重定向。ASP.NET按鈕回發後的Javascript重定向

我問這個問題的原因是我正在編輯一個ASP.NET頁面,但沒有訪問源代碼,所以我只能改變客戶端的東西。

總之,我希望能夠繼續運行ASP.NET按鈕事件,完成後我需要重定向到另一個頁面。

我看了一下,測試了一些,但ASP.NET回發使客戶端重定向不運行。

有什麼想法?

回答

0

2個選擇:

1)當表單提交服務器端 - 做到這一點:

Page.ClientScript.RegisterStartupScript(GetType(), "blabla", "window.location='xxx'", true); 

2)使用隱藏域和設定值在提交(在服務器端)。當頁面返回時,檢查通過JS它的價值,並做到這一點:

if (document.getElementById('myHidden').value=='afterPostBack') 
{ 
window.location='xxx' 
} 

編輯

形式提交之前 - 在JS

var form = document.getElementById("idOfForm"); 
form.onsubmit = function() { 
    document.cookie="isRedirect=1; expires=Thu, 28 Nov 2013 02:23:26 GMT; path=/"; 
    this.submit(); 

} 

做到這一點,添加頁面此的底部代碼:

if (document.cookie.indexOf('isRedirect=1')>-1) 
{ 
window.location='xxx' 
} 
+0

正如我所說的關於我的問題,我不能在服務器端改變任何東西,因爲我沒有源代碼(服務器端代碼/ cs文件) – daniel

+0

任何訪問@daniel看到我的編輯。 –

+0

當我嘗試添加cookie時,此後cookie仍爲空。你知道爲什麼嗎? – daniel

1
<head runat="server"> 
<script type="text/javascript"> 
    function PageRedirect() { 
     window.location.href = "http://www.google.com/"; 
    } 
</script> 
</head> 
<body> 
<form runat="server"> 

//我們Ë的OnClientClick

 <asp:Button ID="Button1" runat="server" Text="Button" OnClientClick="PageRedirect(); return false;"/> 
// Return False will not post the page even if its postback=true 
</form> 
</body> 
+0

但我想保留Button的服務器端事件。我想要做的是在服務器端事件之後添加一個javascript函數,然後重定向頁面。 – daniel

+0

然後你會這樣調用它。 Page.ClientScript.RegisterStartupScript(GetType(),「SomeName」,「PageRedirect();」,true); 在你的服務器端代碼 –