2013-05-14 171 views
0

我有下拉列表的頁面,我必須打開一個新的窗口,選擇ITEAM的編輯形式如何在新標籤中打開新的窗口,動態URL

protected void DropDownList1_SelectedIndexChanged(object sender, EventArgs e) 
{ 
    this.EntityGrid.Columns.Clear(); 
    EntityName.Text = DropDownList1.SelectedItem.Text; 
    newEntity.Visible = true; 
    newEntity.Text = DropDownList1.SelectedItem.Text; 
    ... 
} 

以下工作

protected void newEntity_Click(object sender, EventArgs e) 
{ 
    var entity = newEntity.Text; 
    Response.Redirect(entity + "Edit.aspx"); 
    ... 
} 

但我怎樣才能打開在單獨的選項卡不是新窗口。

回答

1

打開一個單獨的窗口是一個客戶端功能,所以你需要「注入」JavaScript告訴瀏覽器這樣做。

Response.Write(
    string.Format(
     "<script>window.open('{0}','_blank');</script>", entity + "Edit.aspx")); 

參數_blank告訴windows.open函數打開一個新窗口

+0

謝謝奧古斯丁彈出窗口被阻止我怎樣才能讓它在新標籤中打開而不是新窗口 – user2167089

+0

這不是一個小問題......你可以查看這篇文章的討論http://stackoverflow.com/questions/4907843 /開網址在新標籤 - 使用JavaScript的 –

1

您需要直接在瀏覽器中打開一個新窗口 - 這不能做服務器端,所以你必須在客戶端這樣做側。

一個選項是,而不是Response.Redirect,使用Response.Write來輸出JavaScript以打開一個新窗口(並重定向當前的窗口)。

另一種選擇是在打開新窗口的鏈接上使用target="_blank"屬性。

0

您可以忘記使用JavaScript,因爲瀏覽器控制它是否在新選項卡中打開。最好的選擇是像做以下代替:

<form action="http://www.yoursite.com/dosomething" method="get" target="_blank"> 
    <input name="dynamicParam1" type="text"/> 
    <input name="dynamicParam2" type="text" /> 
    <input type="submit" value="submit" /> 
</form> 

這將在一個新的標籤,無論哪個瀏覽器客戶端使用,由於target屬性的常開。

相關問題