根据数据使Gridview超链接字段可见性

时间:2013-11-12 10:47:46

标签: c# asp.net gridview data-binding

我在Gridview中有一个超链接,只有在有文档存在时才会显示。

我知道是否存在通过字段DocumentExists出现的文档,我将其作为DataBinding过程的一部分传递给它。

我的HyperlinkField看起来像这样:

<asp:HyperLinkField DataNavigateUrlFields="DocumentID" Visible='<%# Eval("DocumentExists")%>' HeaderText="Document" Text="Download" DataNavigateUrlFormatString="~/KeyTracking/DownloadDocument.aspx?ID={0}" />

我从另一个SO答案中找到了代码的“Eval”部分。

然而,当我运行它时,我收到以下错误:

  

仅在具有DataBinding事件的对象上支持数据绑定表达式。 System.Web.UI.WebControls.HyperLinkField没有DataBinding事件。仅在具有DataBinding事件的对象上支持数据绑定表达式。 System.Web.UI.WebControls.HyperLinkField没有DataBinding事件。

我怎样才能让它发挥作用?

1 个答案:

答案 0 :(得分:0)

找到了解决方案。

使用具有超链接的项模板,而不是使用HyperLinkField。那么Eval会很好用。

<asp:TemplateField>
     <ItemTemplate>
        <asp:HyperLink runat="server" ID="hf" Visible='<%# Eval("DocumentExists")%>' Text="Download"  NavigateUrl='<%# Eval("DocumentID") %>'/>
     </ItemTemplate>
</asp:TemplateField>