我想問一下在ASP.NET按鈕單擊事件完成後我們是否可以做一個JavaScript重定向。ASP.NET按鈕回發後的Javascript重定向
我問這個問題的原因是我正在編輯一個ASP.NET頁面,但沒有訪問源代碼,所以我只能改變客戶端的東西。
總之,我希望能夠繼續運行ASP.NET按鈕事件,完成後我需要重定向到另一個頁面。
我看了一下,測試了一些,但ASP.NET回發使客戶端重定向不運行。
有什麼想法?
我想問一下在ASP.NET按鈕單擊事件完成後我們是否可以做一個JavaScript重定向。ASP.NET按鈕回發後的Javascript重定向
我問這個問題的原因是我正在編輯一個ASP.NET頁面,但沒有訪問源代碼,所以我只能改變客戶端的東西。
總之,我希望能夠繼續運行ASP.NET按鈕事件,完成後我需要重定向到另一個頁面。
我看了一下,測試了一些,但ASP.NET回發使客戶端重定向不運行。
有什麼想法?
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'
}
<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>
但我想保留Button的服務器端事件。我想要做的是在服務器端事件之後添加一個javascript函數,然後重定向頁面。 – daniel
然後你會這樣調用它。 Page.ClientScript.RegisterStartupScript(GetType(),「SomeName」,「PageRedirect();」,true); 在你的服務器端代碼 –
正如我所說的關於我的問題,我不能在服務器端改變任何東西,因爲我沒有源代碼(服務器端代碼/ cs文件) – daniel
任何訪問@daniel看到我的編輯。 –
當我嘗試添加cookie時,此後cookie仍爲空。你知道爲什麼嗎? – daniel