如何使用响应在新选项卡中打开页面。在asp.net重定向

时间:2015-12-29 11:41:20

标签: c# asp.net

我想在按钮点击中使用response.redirect打开新标签页或新页面。即时通讯使用查询字符串传递一些值。如何在新标签页中打开页面。

protected void btnSave_Click(object sender, EventArgs e)
   {
     ...//some code to insert records
 Response.Redirect("NewQuote.aspx?val=" + this.txtQuotationNo.Text);//displaying gridview in other page to print what needed

}

9 个答案:

答案 0 :(得分:7)

试试这个。这对我来说确实有用......

protected void btnSave_Click(object sender, EventArgs e)
   {
     ...//some code to insert records
 Response.Write("<script>window.open ('NewQuote.aspx?val=" + txtQuotationNo.Text+"','_blank');</script>");


}

答案 1 :(得分:3)

您可以按以下方式更改设计元素:OnClientClick

<asp:Button ID="Button1" runat="server" onclick="Button1_Click" Text="Button"  OnClientClick ="document.forms[0].target = '_blank';"  />

Javascript代码:

 Response.Write("<script>");
 Response.Write("window.open('NewQuote.aspx' ,'_blank')");
 Response.Write("</script>");

答案 2 :(得分:1)

重定向始终与您来自同一页面,您无法通过重定向调用打开新窗口。

我建议在客户端注入一些javascript代码,以便在重新加载时打开新页面,或者更改为可以打开新页面的控件,例如LinkButton右侧Target属性。

答案 3 :(得分:1)

如果您使用的是http 然后使用下面的代码

Response.Write("<script>window.open ('URL','_blank');</script>");

此代码不能用于https 对于https,请执行以下操作

页面中的javascript

function shwwindow(myurl) {
    window.open(myurl, '_blank');
}

后面的c#代码

 string URL = ResolveClientUrl("~") + "**internal page path**";
    ScriptManager.RegisterStartupScript(this, this.GetType(), "show window", 
    "shwwindow('"+URL+"');", true);

此代码无法通过浏览器弹出窗口阻止程序。用户必须允许它运行。 因为它在新窗口或新标签中打开,即版本 在Firefox和Chrome中,它会打开新标签

享受它!!

答案 4 :(得分:1)

简单的解决方案就在这里。

编辑html按钮元素并添加属性 OnClientClick =&#34; target =&#39; _blank&#39;;&#34;

<asp:Button ID="myButton" runat="server" CssClass="btn1"
            OnClick="btnSave_Click" OnClientClick="target ='_blank';" />

然后在 btnSave_Click

Response.Redirect(url);

答案 5 :(得分:1)

我今天也遇到了同样的问题。

Response.write对我不起作用,为了解决它,我改用System.Web.UI.ScriptManager.RegisterClientScriptBlock。

您的btnSave点击事件应该是这样的:

protected void btnSave_Click(object sender, EventArgs e)
{
    ...//some code to insert records
    System.Web.UI.ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "openModal", "window.open('NewQuote.aspx?val= "+ this.txtQuotationNo.Text+"' ,'_blank');", true);
}

注意:我使用的是ScriptManager.RegisterClientScriptBlock,因为该按钮位于UpdatePanel内,如果不是这种情况,则应尝试:

protected void btnSave_Click(object sender, EventArgs e)
{
    ...//some code to insert records
    Page.ClientScript.RegisterClientScriptBlock(this.GetType(), "openModal", "window.open('NewQuote.aspx?val= " + this.txtQuotationNo.Text + "' ,'_blank');", true);
}

答案 6 :(得分:0)

当我将双引号排除在目标='_ blank'之外时为我工作;

答案 7 :(得分:0)

您可以使用ScriptManager进行所需的操作:

private void Redirect_New_Tab(string url_To_Open)
{    
    string modified_URL = "window.open('" + url_To_Open + "', '_blank');";
    ScriptManager.RegisterStartupScript(this, typeof(string), "OPEN_WINDOW", modified_URL , true);
}

答案 8 :(得分:0)

Response.write 对我不起作用,所以我改用 System.Web.UI.ScriptManager.RegisterClientScriptBlock。

System.Web.UI.ScriptManager.RegisterClientScriptBlock(this, this.GetType(), "openModal", "window.open('NewQuote.aspx?val= "+ this.txtQuotationNo.Text+"' ,'_blank');", true);