遍历类,即。 asp.net的bean
时间:2020-03-06 14:38:06 来源:igfitidea点击:
可以说我有一个类,用于存储带有getter和setter的用户信息,并且该类中填充了XML文件中的数据。我将如何像使用Java bean和标记库那样遍历该类的所有实例?
解决方案
假设我们可以获取该类的所有实例并将其添加到泛型列表中。
List<YourClass> myObjects = SomeMagicMethodThatGetsAllInstancesOfThatClassAndAddsThemtoTheCollection(); foreach (YourClass instance in myObjects) { Response.Write(instance.PropertyName.ToString(); }
如果我们不想指定每个属性名称,则可以使用Reflection(请参阅PropertyInfo),并以此方式进行操作。同样,不确定这是否是意图。
对于输出格式化的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设置为集合。它与上面的代码几乎相同,但是我认为这种方式更清晰(我认为)。