在新标签中打开asp.net页面[复制](open page in new tab asp.net

2019-06-26 22:40发布

这个问题已经在这里有一个答案:

  • Response.Redirect的新窗口, 20个答案

我写使用ASP.NET C#项目。

我想要实现的LinkBut​​ton的Click事件在新标签中打开新的页面,但在此之前我必须创建新的会话变量。 我曾经尝试这样做:

protected void LinkButton_Click3(Object sender, EventArgs e)
        {
            string p_id = (sender as LinkButton).CommandArgument;
            Session["p_id"] = p_id;
            Response.Write("<script type='text/javascript'> window.open('details.aspx','_blank'); </script>");

        }

不过,这并不反正工作。

Answer 1:

根据您的意见,您应该禁用弹出式窗口拦截。



Answer 2:

试试这个,请按一下按钮此功能,或者您希望从重定向页面上唯一的document.ready。

<script type="text/javascript">
function newTab() 
{
  if (opener.document.getElementById("aspnetForm").target != "_blank") return;   

opener.document.getElementById("aspnetForm").target = "";
opener.document.getElementById("aspnetForm").action = opener.location.href;

}

</script

或本添加到LinkBut​​ton的HTML

OnClientClick="aspnetForm.target ='_blank';"


Answer 3:

有时,它为我的作品只是申报不管我会从给药代码动态调用到一个javascript函数并调用它与在ClientScript类RegisterClientScriptBlock方法中:

Daclare的window.open功能:

    <script type="text/javascript">
        function SetRedirect(URI) {
           window.open(URI, "Details", "menubar=no, location=no, resizable=yes, scrollbars=yes, status=yes, width = 1200, height = 600");
        }
    </script>

然后从背后类只是一个网关主叫此功能的代码中,如:

void MessageGateway(string URI)
{
    this.Page.ClientScript.RegisterClientScriptBlock(this.GetType(),
        "logCallBack", @"<script type=""text/javascript"">SetRedirect('" + URI + "');</script>");
}

就是这样,你可以调用这个网关与你的东西,通常你做什么,

MessageGateway(string.Format("../IRMQueryPO.aspx?id={0}", e.Item.Cells[2].Text));

你可以尝试用tweeking“_blank”的“目标”参数,以打开一个标签,而不是一个窗口,它只是一个风味您的解决方案点事。



文章来源: open page in new tab asp.net [duplicate]