【问题标题】:Manage Hyperlink base on the condition in Repeater ASP.NET C#根据Repeater ASP.NET C#中的条件管理超链接
【发布时间】:2016-10-04 09:54:59
【问题描述】:

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

【问题讨论】:

    标签: c# asp.net repeater


    【解决方案1】:

    在中继器中使用它:

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

    您可以在 HyperLink 本身中使用 if 语句设置可见性:Visible='&lt;%# Eval("AttachmentID").ToString() != "NA" %&gt;'

    更新

    您还可以检查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" />
    

    【讨论】:

    • 我不是可见附件 ID,我想根据附件 ID 显示超链接。如果附件 ID 为空,则目标空白打开是新页面,否则一些值将在同一页面 url 中打开。 @VDWWD
    • 我收到此错误:System.Web.dll 中发生“System.Web.HttpException”类型的异常,但未在用户代码中处理其他信息:DataBinding:“System.Data.DataRowView” ' 不包含名为 'DataItem' 的属性。 @VDWWD
    • 试试Text='&lt;%# Eval("Heading") %&gt;'。我刚刚从您的 sn-p 中复制了名称。
    • 非常感谢你,我可以在添加工作后知道。 @VDWWD
    猜你喜欢
    • 1970-01-01
    • 2011-01-20
    • 1970-01-01
    • 2012-06-03
    • 2015-12-07
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2010-09-17
    相关资源
    最近更新 更多