1

我正在使用 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>");

        }

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

4

3 回答 3

1

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

于 2012-08-09T17:49:16.557 回答
0

有时,我只需将我将从管理代码中动态调用的任何内容声明为 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));

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

于 2014-05-09T19:01:18.173 回答
0

试试这个,在按钮单击或 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';"
于 2012-08-09T17:40:11.367 回答