2011-09-09 117 views
12

我有一個asp.net應用程序,用戶可以點擊一個按鈕並啓動另一個頁面(在同一個應用程序中)。我面臨的問題是,應該啓動原始頁面和新啓動的頁面。如何在點擊按鈕後啓動另一個aspx網頁?

我試過response.redirect,但是這往往會卸載原始頁面。

有什麼建議嗎?

+2

你是說這個頁面應該在新窗口中打開? –

回答

25

此按鈕後到當前頁面,而在同一時間在新的瀏覽器窗口中打開OtherPage.aspx。我覺得這是你的意思...the original page and the newly launched page should both be launched.

<asp:Button ID="myBtn" runat="server" Text="Click me" 
    onclick="myBtn_Click" OnClientClick="window.open('OtherPage.aspx', 'OtherPage');" /> 
+0

您如何關閉當前表單? – 2016-03-02 12:51:12

+0

@DB:不明白..導航到新視圖是不夠的。爲什麼你需要打開一個新表格然後關閉當前? –

+0

OnClientClick =「window.open('http://www.stackoverflow.com/');」這將打開新標籤。 – JoshYates1980

1

使用html按鈕和javascript?在JavaScript中,window.location是用來改變當前窗口的URL位置,而window.open將打開一個新

<input type="button" onclick="window.open('newPage.aspx', 'newPage');" /> 

編輯:啊,剛剛發現這一點:如果你的表單標籤的ID是form1,在你的ASP按鈕

OnClientClick="form1.target ='_blank';" 
+1

我的第二個(已編輯的)解決方案可能會導致您的回髮結果顯示在新瀏覽器中,而舊窗口不會更改。如果您想要發佈到當前窗口並打開一個新窗口,請使用Claudio的答案 –

+1

感謝您提供我的解決方案。看起來好像當我在我的一個網站上使用它時曾用過,但從那時起停止了這種功能。我將不得不因爲你而改變我的代碼:)。 – KreepN

+1

@KreepN我只是混淆了你的代碼,它似乎工作,如果'Form.Target =「_blank」;'從他們以前的請求讀取。它建立了他們的下一個要求,在新窗口中進行迴應。例如:將其設置在Page_Load中,所有回傳頁面將在新窗口中打開^^ –

13

編輯設置該屬性和固定(感謝碎紙機)

如果你的意思是你想打開一個新的標籤,請嘗試以下:

protected void Page_Load(object sender, EventArgs e) 
{ 
    this.Form.Target = "_blank"; 
} 

protected void Button1_Click(object sender, EventArgs e) 
{ 

    Response.Redirect("Otherpage.aspx"); 
} 

這將保持原來的頁面保持開放,並導致當前頁面上的重定向隻影響新標籤。

-J

+0

這對我無效 –

+1

作爲編輯工作。如果人們正在尋找上述解決方案的替代方案,我就不會放棄。 – KreepN

4

如果你想背後使用代碼,我建議對ASP以下解決方案:按鈕 -

ASPX頁面

<asp:Button ID="btnRecover" runat="server" Text="Recover" OnClick="btnRecover_Click" /> 

代碼隱藏

protected void btnRecover_Click(object sender, EventArgs e) 
    { 
     var recoveryId = Guid.Parse(lbRecovery.SelectedValue); 
     var url = string.Format("{0}?RecoveryId={1}", @"../Recovery.aspx", vehicleId); 

     // Response.Redirect(url); // Old way 

     Response.Write("<script> window.open('" + url + "','_blank'); </script>"); 
     Response.End(); 
    } 
2

你應該使用:

protected void btn1_Click(object sender, EventArgs e) 
{ 
    Response.Redirect("otherpage.aspx"); 
} 
相關問題