2016-10-04 61 views
0

如何基於AttachmentID管理超鏈接,在Inside鏈接按鈕中有兩個要管理的超鏈接,如果AttachmentID爲「NA」則超鏈接ID應該可見其他超鏈接ID二應該可見。我嘗試了很多谷歌這樣的代碼無法找到。我嘗試使用ItemCommand和ItemDataBound,但不理解這個概念。這樣做的主要概念是管理target =「_ blank」。基於Repeater中的條件管理超鏈接ASP.NET C#

以下是我的中繼代碼。

<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> 

回答

0

使用此在您的轉發器:

<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" %>'

UPDATE

您還可以檢查AttachmentIDIsNullOrEmpty並顯示正確的超鏈接。

<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" /> 
+0

我不是可見的附件ID,我想要基於附件ID可見的超鏈接。如果附件ID爲空,則目標空白打開是新頁面,否則一些值將在同一頁面URL中打開。 @VDWWD – zahed

+0

我收到此錯誤:在System.Web.dll中發生類型'System.Web.HttpException'的異常,但未在用戶代碼中處理 其他信息:DataBinding:'System.Data.DataRowView'不包含名爲'DataItem'的屬性。 @VDWWD – zahed

+0

試試'Text ='<%#Eval(「Heading」)%>''。我剛剛從你的代碼片段中複製了這些名字。 – VDWWD