打开gridview LinkBut​​ton不适用于新窗口/选项卡

时间:2013-01-29 04:20:57

标签: gridview hyperlink asp.net-4.0 asplinkbutton

我有一个像这样定义的gridview:

<asp:GridView ID="GridView1" runat="server" AutoGenerateColumns="False" DataKeyNames="columnid" DataSourceID="SqlDataSource1"
           <Columns>
        <asp:TemplateField HeaderText="Title">
            <ItemTemplate>
                <asp:LinkButton ID="LinkButton1"  ForeColor="red"  runat="server" onclick="LinkButton1_Click" 
                   Text="Click Me!"></asp:LinkButton>                  
            </ItemTemplate>
        </asp:TemplateField>

LinkBut​​ton1_click的代码隐藏如下:

protected void LinkButton1_click(object sender, EventArgs e)
{
    string stringQuery = methodToGetQueryString;
    Response.Redirect(queryString, true);
}

这非常有效,除非我尝试将链接作为新选项卡或新窗口打开时,它会给我一个关于:空白页面的信息。我看了很多,似乎普遍的共识似乎不是使用链接按钮,我必须使用超链接?我试图将ItemTemplate中的代码更改为如下所示:

 <ItemTemplate>
        <asp:HyperLink ID = "HyperLink1" runat="server" Text="click me!" NavigateURL = "~/setTheUrlHere.aspx" />

 </ItemTemplate>

这个问题出于一些奇怪的原因,我的超链接实际上都不是可点击的。我将鼠标悬停在它们上面,当我右键单击时,我无法在新选项卡或窗口中打开。看起来它只是一个死链接。我是否需要设置href或其他东西?我认为那是NavigateURL会做什么的?或者是否有更简单的方法来使用LinkBut​​ton做我需要的东西?

谢谢!

1 个答案:

答案 0 :(得分:0)

如果有趣,我使用了 asp:HyperLinkField 这样的列:

<asp:HyperLinkField DataTextField="Nome_Da_Agencia" DataTextFormatString="Detalhe {0}" DataNavigateUrlFields="Nome_Da_Agencia, Codigo_Da_Agencia" HeaderText="Detalhes"
                     DataNavigateUrlFormatString="Agencia.aspx?codigoAgencia={1}" Target="_blank"  />

注意目标=&#34; _blank#34; ,它告诉您在新标签页中打开