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

时间:2016-10-04 09:55:00

标签: c# asp.net repeater

如何基于AttachmentID管理超链接,在内部链接按钮中有两个要管理的超链接,如果AttachmentID是“NA”那么超链接ID应该可见其他超链接ID两个应该可见。我尝试了很多像谷歌这样的代码无法找到。我尝试使用ItemCommand和ItemDataBound,但不理解这个概念。执行此操作的主要概念是管理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>

1 个答案:

答案 0 :(得分:0)

在转发器中使用它:

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

您可以在HyperLink中使用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" />