假设我有一个类,它使用 getter 和 setter 来存储用户信息,并且填充了来自 XML 文件的数据。我将如何迭代该类的所有实例,就像使用 java bean 和标记库一样?
Ethan Gunderson
问问题
437 次
2 回答
1
对于输出格式化的 HTML,您有几个选择。我可能会做的是在代码隐藏上创建一个属性,以访问您想要迭代的对象集合。然后,我将在 .aspx 页面本身上编写用于迭代和格式化它们的逻辑。例如,.aspx 页面:
[snip]
<body>
<form id="form1" runat="server">
<% Somethings.ForEach(s => { %>
<h1><%=s.Name %></h1>
<h2><%=s.Id %></h2>
<% }); %>
</form>
</body>
</html>
然后是代码隐藏:
[snip]
public partial class _Default : System.Web.UI.Page
{
protected List<Something> Somethings { get; private set; }
protected void Page_Load(object sender, EventArgs e)
{
Somethings = GetSomethings(); // Or whatever populates the collection
}
[snip]
您还可以查看使用转发器控件并将 DataSource 设置为您的集合。这与上面的代码几乎相同,但我认为这种方式更清晰(在我看来)。
于 2008-09-24T01:00:28.053 回答
0
这假设您可以获取类的所有实例并将它们添加到通用列表中。
List<YourClass> myObjects = SomeMagicMethodThatGetsAllInstancesOfThatClassAndAddsThemtoTheCollection();
foreach (YourClass instance in myObjects)
{
Response.Write(instance.PropertyName.ToString();
}
如果您不想指定每个属性名称,您可以使用反射,(请参阅 PropertyInfo)并这样做。同样,不确定这是否是您的意图。
于 2008-09-24T00:48:16.973 回答