1

假设我有一个类,它使用 getter 和 setter 来存储用户信息,并且填充了来自 XML 文件的数据。我将如何迭代该类的所有实例,就像使用 java bean 和标记库一样?

4

2 回答 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 回答