0

我有一个定义如下的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);
}

这非常有效,除非当我尝试将链接作为新选项卡或新窗口打开时,它给了我一个 about:blank 页面。我环顾四周,似乎普遍的共识似乎是我必须使用超链接而不是使用链接按钮?我尝试将 ItemTemplate 中的代码更改为如下所示:

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

 </ItemTemplate>

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

谢谢!

4

1 回答 1

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"  />

注意Target="_blank"它告诉在新选项卡中打开

于 2014-04-15T13:11:19.633 回答