我想在按钮点击中使用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
}
答案 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);