【发布时间】:2012-04-29 05:00:21
【问题描述】:
我有一个 UserControl,它有一个包含照片列表的产品列表的属性。在.ascx 我有一个DIV 作为所有照片的容器。这就像现在一样工作。
<% foreach (var product in Products) { %>
<div class="product">
<div class="product-photos">
<% foreach (var photo in product.Photos) { %>
<img src="<%= photo.Url %>" alt="<%= product.Name %> Photo"/>
<% } %>
</div>
<!-- Other product markup/data here... -->
</div>
<% } %>
如果没有照片,我现在正试图隐藏DIV。我的想法是让“产品照片”DIV 有一个runat="server" 并给它一个Visible 属性。这不起作用,因为它无法解析来自我的foreach 循环的product 变量。似乎runat="server" 使来自foreach 循环的变量无法访问,这是没有意义的,因为循环也必须在服务器上运行。
问题:
当元素具有runat="server" 时,如何访问在.as*x 文件内的foreach 循环中定义的变量?这甚至可能吗?如果没有,有什么替代方法可以实现我想要的?
ProductsControl.ascx.cs
public partial class ProductsControl: UserControl
{
public IList<Product> Products { get; set; }
}
Product.cs
public class Product
{
public IList<Photo> Photos { get; set; }
// Other properties here...
}
【问题讨论】:
-
一分钟前发布了一个关于使用
asp:DataList代替 foreach 循环的答案。我试图评论它,但它在我之前就被删除了。谁添加了答案然后删除了它,应该把它带回来,它实际上可能对我有帮助!
标签: c# asp.net .net data-binding