【问题标题】:open page in new tab asp.net [duplicate]在新标签 asp.net 中打开页面 [重复]
【发布时间】:2012-08-09 17:34:32
【问题描述】:

我正在使用 ASP.NET C# 编写一个项目。

我想实现链接按钮单击事件以在新选项卡中打开新页面,但在我必须创建新会话变量之前。我试过这个:

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>");

        }

但它无论如何都不起作用。

【问题讨论】:

  • 确保您的弹出窗口拦截器没有抑制窗口。
  • 回发发生了吗?你看到生成的 HTML 中的脚本了吗?
  • 是的,它发生了。如果我写 Response.Redirect("details.aspx");而是 response.write(..);我重定向到 details.aspx 但在同一个窗口中
  • 这不应被标记为重复。仅仅因为少数人认为您应该使用 response.redirect 并不意味着它是同一个问题。这种情况经常发生在人们认为他们无所不知的情况下。 Response.Redirect 绝对不适用于我的项目。

标签: c# asp.net redirect response


【解决方案1】:

根据您的 cmets,您应该禁用弹出窗口阻止程序。

【讨论】:

  • 我已禁用弹出窗口拦截器,但问题仍然存在
【解决方案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

或将其添加到链接按钮 html

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

【讨论】:

  • ssory,但是使用这个并没有解决问题
  • 很好奇,上面接受的答案链接中哪个解决方案有效?
【解决方案3】:

有时我只需将我将从管理代码中动态调用的任何内容声明为 javascript 函数,然后使用 ClientScript 类中的 RegisterClientScriptBlock 方法:

达克莱尔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));

您可以尝试使用“_blank”来调整“target”参数以打开选项卡而不是窗口,这只是您的解决方案所指向的风格问题。

【讨论】:

    猜你喜欢
    • 2019-12-28
    • 1970-01-01
    • 1970-01-01
    • 2019-09-09
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多