【问题标题】:Make Gridview Hyperlink field visibility depending on data根据数据使 Gridview 超链接字段可见
【发布时间】:2013-11-24 11:28:31
【问题描述】:

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

我知道是否存在通过字段DocumentExists 存在的文档,我正在通过它作为数据绑定过程的一部分。

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

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

我怎样才能让它工作?

【问题讨论】:

  • 请给gridview的rowdatabound事件添加代码,我会给你一个解决方案。
  • 我没有更改 RowDataBound 事件中的任何内容,我希望在不需要覆盖 RowDataBound 的情况下这样做

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


【解决方案1】:

找到了解决办法。

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

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

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2023-02-16
    • 2013-10-17
    • 1970-01-01
    • 2012-10-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-10-03
    相关资源
    最近更新 更多