假设我有一个用getter和setter存储用户信息的类,并且它填充了XML文件中的数据。我将如何迭代该类的所有实例,就像使用java bean和标记库一样?
答案 0 :(得分: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设置为您的集合。它与上面的代码几乎相同,但我认为这种方式更清晰(在我看来)。
答案 1 :(得分:0)
这假设您可以获取班级的所有实例并将其添加到通用列表中。
List<YourClass> myObjects = SomeMagicMethodThatGetsAllInstancesOfThatClassAndAddsThemtoTheCollection();
foreach (YourClass instance in myObjects)
{
Response.Write(instance.PropertyName.ToString();
}
如果您不想指定每个属性名称,可以使用Reflection,(请参阅PropertyInfo)并以此方式执行。再次,不确定这是否是你的意图。