我在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事件。
我怎样才能让它发挥作用?
答案 0 :(得分:0)
找到了解决方案。
使用具有超链接的项模板,而不是使用HyperLinkField。那么Eval会很好用。
<asp:TemplateField>
<ItemTemplate>
<asp:HyperLink runat="server" ID="hf" Visible='<%# Eval("DocumentExists")%>' Text="Download" NavigateUrl='<%# Eval("DocumentID") %>'/>
</ItemTemplate>
</asp:TemplateField>