我有一个嵌套在Panel控件中的Repeater控件。
<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>
我将Repeater控件的DataSource属性设置为 DataSource =“&lt;%#this.DataSource%&gt;”,因为此代码实际上是自定义Web控件的一部分。
我希望显示或隐藏Panel控件,具体取决于DataSource对象中是否包含任何数据。我在代码隐藏中这样做了:
if (rptTags.Items.Count == 0)
{
tags.Visible = false;
}
我想在ASPX部分做这件事,比如:
<asp:Panel id="tags" runat="server" Visible="<%# ((IEnumerable)DataSource).LengthOrSomething %>">
答案 0 :(得分: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>