根据 Repeater ASP.NET C# 中的条件管理超链接

Manage Hyperlink base on the condition in Repeater ASP.NET C#

如何根据AttachmentID管理Hyperlinks,在link按钮里面有两个hyperlink可以管理,如果AttachmentID是"NA"那么Hyperlink ID 1 应该可见 else Hyperlink ID 2 应该可见。我试了很多 google 这样的代码找不到。我尝试使用 ItemCommand 和 ItemDataBound 但不理解这个概念。执行此操作的主要概念 manage target="_blank".

下面是我的转发器代码。

<asp:Repeater ID="Repeater_News1" runat="server" OnItemDataBound="Repeater_News1_ItemDataBound">
        <ItemTemplate>
            <asp:Image ID="Image2" runat="server" class="pull-left img-responsive" ImageUrl='<%# Bind("ImageName", "~/images/news_images/{0}") %>' />
            <asp:LinkButton ID="lnkbtn_check" runat="server" CommandArgument='<%# DataBinder.Eval(Container.DataItem, "Attachmentid") %>'>

            <a href='<%# DataBinder.Eval(Container.DataItem, "Attachment")%>' id="one"
                 target="_blank">
                <%# DataBinder.Eval(Container, "DataItem.Heading")%></a> 

               <a href='<%# DataBinder.Eval(Container.DataItem, "Attachment")%>' id="two">

                <%# DataBinder.Eval(Container, "DataItem.Heading")%></a> 

            </asp:LinkButton>
            </h4>
            <p>
                <%# DataBinder.Eval(Container, "DataItem.SmallDescription")%></p>
        </ItemTemplate>
    </asp:Repeater>

在你的转发器中使用这个:

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("Attachment") %>' Visible='<%# Eval("AttachmentID").ToString() != "NA" %>' Text='<%# Eval("DataItem.Heading") %>' Target="_blank" />

您可以在超链接本身中使用 if 语句设置可见性:Visible='<%# Eval("AttachmentID").ToString() != "NA" %>'

更新

您还可以检查 AttachmentID 是否有 IsNullOrEmpty 并显示正确的超链接。

<asp:HyperLink ID="HyperLink1" runat="server" NavigateUrl='<%# Eval("Attachment") %>' Visible='<%# string.IsNullOrEmpty(Eval("AttachmentID").ToString()) %>' Text='<%# Eval("DataItem.Heading") %>' Target="_blank" />

<asp:HyperLink ID="HyperLink2" runat="server" NavigateUrl='<%# Eval("Attachment") %>' Visible='<%# !string.IsNullOrEmpty(Eval("AttachmentID").ToString()) %>' Text='<%# Eval("DataItem.Heading") %>' Target="_self" />