我有一个像这样定义的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>
LinkButton1_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会做什么的?或者是否有更简单的方法来使用LinkButton做我需要的东西?
谢谢!
答案 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; ,它告诉您在新标签页中打开