打开gridview链接按钮不适用于新窗口/选项卡

打开gridview链接按钮不适用于新窗口/选项卡,gridview,hyperlink,asp.net-4.0,asplinkbutton,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"> <ItemTe

我有一个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>
这非常有效,除了当我尝试以新选项卡或新窗口的形式打开链接时,它会给我一个关于:空白页。我已经环顾了很多地方,似乎大家都认为不用链接按钮,我必须使用超链接?我已尝试将ItemTemplate中的代码更改为如下所示:

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

 </ItemTemplate>

这个问题是出于某种奇怪的原因,我的超链接实际上没有一个是可点击的。我将鼠标悬停在它们上面,当我右键单击时,我没有在新选项卡或窗口中打开的选项。看起来这只是一个死链接。我需要设置href还是什么?我以为那就是导航者会做的?或者有没有更简单的方法来使用链接按钮完成我需要的操作


谢谢

如果有意思的话,我使用asp:HyperLinkField列如下:

protected void LinkButton1_click(object sender, EventArgs e)
{
    string stringQuery = methodToGetQueryString;
    Response.Redirect(queryString, true);
}
<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"  />


a注意Target=“\u blank”它告诉在新选项卡中打开的位置

是的,这就是NavigateURL所做的-您是否在页面加载上设置了值?我实际上在.aspx页面中设置了NavigateURL。如何将其设置为页面加载?当我尝试在.aspx.cs页面中键入超链接的ID时,它找不到它?它位于gridview的模板中,因此,您需要在该gridview的数据绑定事件上设置它。这就是我的代码在.ASPX.CS中的样子,但它告诉我,当前上下文中不存在HyperLink1?:受保护的void GridView1_数据绑定(对象发送方,EventArgs e){HyperLink1.NavigateURL=“url”}您如何确定URL?是否基于数据源结果?如果是,那是哪一列?