1

我在 Gridview 中有一个超链接,它应该只在存在文档时才可见。

我知道是否有一个文档存在通过DocumentExists我作为 DataBinding 过程的一部分通过它的字段。

我的超链接字段如下所示:

<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 事件。

我怎样才能让它工作?

4

1 回答 1

0

找到了解决方案。

不要使用 HyperLinkField,而是使用具有超链接的项目模板。然后 Eval 将运行良好。

<asp:TemplateField>
     <ItemTemplate>
        <asp:HyperLink runat="server" ID="hf" Visible='<%# Eval("DocumentExists")%>' Text="Download"  NavigateUrl='<%# Eval("DocumentID") %>'/>
     </ItemTemplate>
</asp:TemplateField>
于 2013-11-12T11:03:13.537 回答