2014-07-10 39 views
0

我有一個嵌套在Panel控件內的Repeater控件。如果Repeater控件的DataSource對象在ASP.NET中不包含數據,如何顯示或隱藏Panel控件?

<asp:Panel id="tags" runat="server"> 
    <asp:Repeater ID="rptTags" runat="server" DataSource="<%# this.DataSource %>"> 
     <ItemTemplate> 
      <span class="tag"><%# Eval("Name") %></span> 
     </ItemTemplate> 
    </asp:Repeater> 
</asp:Panel> 

予設定的中繼器控制的數據源屬性這樣數據源=「<%#this.DataSource%>」因爲這種代碼實際上是一個自定義Web控制的一部分。

我想要顯示或隱藏Panel控件,取決於DataSource對象是否有任何數據。我曾在後臺代碼做了這樣的:

if (rptTags.Items.Count == 0) 
    { 
     tags.Visible = false; 
    } 

的事情是我想這樣做的ASPX部分,是這樣的:

<asp:Panel id="tags" runat="server" Visible="<%# ((IEnumerable)DataSource).LengthOrSomething %>"> 

回答

0

你可以這樣做:

C#

public void TagsPreRender(object sender, EventArgs e) { 
    tags.Visible = (((Repeater)sender).Items.Count > 0); 
} 

ASPX

<asp:Panel id="tags" runat="server" > 
    <asp:Repeater OnPreRender="TagsPreRender" ID="rptTags" runat="server" DataSource="<%# this.DataSource %>" > 
     <ItemTemplate> 
      <span class="tag"><%# Eval("Name") %></span> 
     </ItemTemplate> 
    </asp:Repeater> 
</asp:Panel> 
相關問題