Gridview HyperlinkField字段可见性由另一个相应的列内容

时间:2018-04-11 15:49:47

标签: c# asp.net gridview hyperlink eval

我很难找到问题的解决方案,我花了相当多的时间尝试其他解决方案无济于事。任何帮助或解释将不胜感激。

任务

如果安全列设置为restricted,我需要在asp.net Gridview中使我的超链接字段仅可见/可点击。

当前输出

https://imgur.com/a/h8mqh

守则

<asp:HyperLinkField DataNavigateUrlFields="ReportID, Reference_Num, Title, Description"
DataNavigateUrlFormatString="ReportRequest.aspx?ID={0}&Title={2}&Description={3}"
Text="Request Access" Visible='<%#Eval("Security").ToString()=="Unrestricted"?False:True %>' />

因此,您可以看到我正在尝试使用带有Eval的HyperlinkField的Visible属性来读取安全列中的相应文本。

有什么想法吗?

感谢。

1 个答案:

答案 0 :(得分:1)

您可以使用HyperLink Control切换到TemplateField并在那里设置可见性。

text-objects

或者使用RowDataBound事件在正确的单元格中定位生成的HyperLink,并从后面的代码设置可见性。

<asp:TemplateField HeaderText="Ticket Number">
    <ItemTemplate>
        <asp:HyperLink ID="HyperLink1" runat="server" Visible='<%# Eval("Security").ToString() == "Security" ? false : true %>'>Request Access</asp:HyperLink>
    </ItemTemplate>
</asp:TemplateField>