如何使用链接按钮在新选项卡中打开链接

时间:2015-09-04 15:42:58

标签: javascript jquery asp.net gridview

我有gridview HeaderTemplate,其中包含LinkButton。当我点击按钮时,我想在new tab

中打开一个链接
<asp:TemplateField>
     <HeaderTemplate>
      <asp:LinkButton ID="lnkbtn" runat="server" OnClientClick="SetTarget();" OnClick="lbtn_Click">Topics</asp:LinkButton>
     </HeaderTemplate>
<ItemTemplate>
........
</ItemTemplate>

我的JavaScript

<script type = "text/javascript">
        function SetTarget() {
            document.forms[0].target = "_blank";
        }
</script>

OnClick事件是

protected void lbtn_Click(object sender, EventArgs e)
{
  Response.Redirect("http://www.google.com/");
}

这是在新标签中打开链接。 但我在LinkButton之外还有其他gridview用于其他流程,例如Saving数据等。

<asp:LinkButton ID="LinkButton1" runat="server">Save</asp:LinkButton>

但是,当我甚至点击此按钮时,它会打开新标签。如何阻止它们在新标签页中打开

3 个答案:

答案 0 :(得分:0)

您是否有理由想要在服务器端重定向?你可以做到

function redirectToGoogle(){
   window.open('google.com');
   return false;
}

<asp:LinkButton ID="lnkbtn" runat="server" OnClientClick="return redirectToGoogle();" ....

当您设置ASP表单的目标时,每个链接或表单帖子都将以新窗口为目标。因此,您将不得不在每个其他LinkBut​​ton点击或表单提交上撤消表单的目标。

答案 1 :(得分:0)

所有的拳头,请参阅This Link

重要信息

  

链接按钮是超链接样式按钮,所有属性都相同   一个按钮,但它只显示在超链接样式中。如果您愿意   单击控件时链接到另一个Web页面,请考虑使用   HyperLink控件。

尝试:

编辑2:

你这样使用..

<asp:LinkButton ID="LinkButton1" runat="server">Save</asp:LinkButton>

gridview或类似的内容......

然后您想在新窗口中导航所有超链接的URL。

  

所以,你可以动态设置网址。

<asp:TemplateField HeaderText="Log" ItemStyle-Width="15%">
        <ItemTemplate>
            <asp:HyperLink runat="server" 
                NavigateUrl='<%# GetUrl(Eval("Base_Id"))%>' 
                text="Log" target="_blank"></asp:HyperLink>
        </ItemTemplate>
    </asp:TemplateField>

的.cs

protected string GetUrl(object id)
{
return "http://somelink&RecordId=" + id;
}

编辑1: JavaScript window.open()

javascript:window.open('xyz.aspx')

<asp:LinkButton ID="lb1" runat="server" OnClientClick="javascript:window.open('xyz.aspx')">click me</asp:LinkButton>

答案 2 :(得分:0)

当您的OnClientClick JavaScript设置表单目标时,例如

<script type = "text/javascript">
        function SetTarget() {
            document.forms[0].target = "_blank";
        }
</script>

您正在为该页面上的每个ButtonLinkButton设置目标。然后,所有按钮将在一个新的选项卡中打开,这可能不是您想要的。这是因为正在为(一个)页面表单设置目标。

使用ASP.NET Web表单,每个网页只有一个页面表单。使用浏览器>查看源代码

...
<body>
  <form method="post" action="./SearchIndex.aspx" id="form1">
...

如果使用此方法,最好这样做

<script type="text/javascript">
    function SetTarget() {
        window.document.forms[0].target = '_blank'; 
        setTimeout(function () { window.document.forms[0].target = ''; }, 0);
    }
</script>

在其中为该按钮设置页面表单目标的位置,单击(在新标签页中打开),然后在此之后立即重置。