根据 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" />
如何根据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" />