2012-01-05 68 views
-1

我想在後面的代碼中放一個if語句,以使我的轉發器中的項目模板不可見,我可以這樣做嗎?如何僅使項目模板不可見?

<asp:Repeater runat="server" ID="Repeater_CategoryMenu"> 
     <HeaderTemplate> 
      <div id="productCategory"> 
     </HeaderTemplate> 
     <ItemTemplate> 
      hey 
     </ItemTemplate> 
     <FooterTemplate> 
      </div> 
     </FooterTemplate> 
    </asp:Repeater> 

下面的代碼使整個中繼無形的不只是項目模板..

Repeater_CategoryMenu.Visible = false; 
+3

你應該知道後158題正確標記。這不是傳統的ASP,而是ASP.NET – 2012-01-05 12:15:30

回答

1

你必須處理ItemDataBound事件,所以先有這條線在你Page_Load

Repeater_CategoryMenu.ItemDataBound += new RepeaterItemEventHandler(Repeater_CategoryMenu_ItemDataBound); 

那麼這樣的方法:

void Repeater_CategoryMenu_ItemDataBound(object sender, RepeaterItemEventArgs e) 
{ 
    if (e.Item != null && (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)) 
    { 
     if (some_condition_here) 
     { 
      e.Item.Visible = false; 
     } 
    } 
} 
2
  1. 綁定轉發到一個空的集合OR

  2. 使控件內置中繼器OnDataBinding中無法看到

相關問題