【发布时间】:2009-10-29 17:22:40
【问题描述】:
我有一个用户控件,我在多个页面上使用它来显示有关对象的信息。每当我需要使用这个用户控件时,我都会调用一个名为 Display 的方法(在用户控件上)并传入一些值。
public void Display(string name, List<Items> items)
{
// Set a few protected properties so I can display values from the aspx page
}
这很好用,但现在我需要在 aspx 页面的 foreach 循环中使用此控件。
<% foreach (var c in Categories) { %>
<uc:ItemsControl runat="server"/>
<% } %>
categories 对象具有我会传递给 Display 方法的方法和属性。那么我该如何正确设置这些值呢?
我尝试将用户控件上的属性设为公开并以这种方式设置它们:
<uc:ItemsControl Items="<%# c.Items %>"
OtherProperty="<%# c.GetProperty() %>"
runat="server"/>
这不起作用,因为发送进来的属性是空的。如果我使用
这样做的正确方法是什么?
编辑:此外,中继器控件可能会使数据绑定更容易,但我更愿意避免使用任何 .NET 控件。
【问题讨论】:
标签: c# user-controls webforms