迭代类,即asp.net的beans

迭代类,即asp.net的beans,asp.net,class,javabeans,Asp.net,Class,Javabeans,假设我有一个存储用户信息的类,该类包含getter和setter,并使用XML文件中的数据填充。如何像使用java Bean和标记库一样迭代该类的所有实例?这假设您可以获取该类的所有实例并将它们添加到通用列表中 List<YourClass> myObjects = SomeMagicMethodThatGetsAllInstancesOfThatClassAndAddsThemtoTheCollection(); foreach (YourClass instance in myO

假设我有一个存储用户信息的类,该类包含getter和setter,并使用XML文件中的数据填充。如何像使用java Bean和标记库一样迭代该类的所有实例?

这假设您可以获取该类的所有实例并将它们添加到通用列表中

List<YourClass> myObjects = SomeMagicMethodThatGetsAllInstancesOfThatClassAndAddsThemtoTheCollection();
foreach (YourClass instance in myObjects)
{
Response.Write(instance.PropertyName.ToString();
}
List myObjects=somemagicMethod,用于获取该类的所有实例并将其添加到集合();
foreach(MyObject中的YourClass实例)
{
Write(instance.PropertyName.ToString();
}

如果您不想指定每个属性名称,可以使用反射(请参阅PropertyInfo)并以这种方式进行。同样,不确定这是否是您的意图。

这假设您可以获取类的所有实例并将它们添加到泛型列表中

List<YourClass> myObjects = SomeMagicMethodThatGetsAllInstancesOfThatClassAndAddsThemtoTheCollection();
foreach (YourClass instance in myObjects)
{
Response.Write(instance.PropertyName.ToString();
}
List myObjects=somemagicMethod,用于获取该类的所有实例并将其添加到集合();
foreach(MyObject中的YourClass实例)
{
Write(instance.PropertyName.ToString();
}

如果不想指定每个属性名称,可以使用反射(请参阅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]
{ %>
然后是隐藏的代码:

[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]
[snip]
公共部分类\u默认值:System.Web.UI.Page
{
受保护的列表对象{get;private set;}
受保护的无效页面加载(对象发送方、事件参数e)
{
Somethings=GetSomethings();//或填充集合的任何内容
}
[剪报]

您还可以考虑使用repeater控件并将数据源设置为您的集合。这与上面的代码基本相同,但我认为这种方式更清晰(在我看来).

对于输出格式化的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]
{ %>
然后是隐藏的代码:

[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]
[snip]
公共部分类\u默认值:System.Web.UI.Page
{
受保护的列表对象{get;private set;}
受保护的无效页面加载(对象发送方、事件参数e)
{
Somethings=GetSomethings();//或填充集合的任何内容
}
[剪报]

您还可以考虑使用repeater控件并将数据源设置为您的集合。这与上面的代码基本相同,但我认为这种方式更清晰(在我看来).

你能更详细地解释一下你想做什么吗?你想迭代一组对象来显示它们的数据吗?也许我对JavaBeans不够熟悉,不知道你在寻找什么类型的解决方案……这正是我想做的。在java中,我可以使用标记库来迭代属性,然后用html输出其值。我正在寻找一种与asp.net类似的方法,或者是否有一种更好的方法,我不知道使用asp.net执行此操作。请您更详细地解释一下您尝试执行的操作,好吗?您是否正试图迭代对象集合以显示其数据?也许我不知道我对JavaBeans的了解已经足够多,可以知道您正在寻找哪种类型的解决方案……这正是我正在尝试的。在java中,我可以使用标记库来迭代属性,然后用html输出其值。我正在寻找一种类似的方法来使用asp.net实现这一点,或者是否有更好的方法可以使用.n实现这一点etyes响应。Write将只写入当前http输出。它将在aspx页面上工作,如果需要,创建一个整数列表,并在页面加载时将其写入,如上图所示。yes响应。Write将只写入当前http输出。它将在aspx页面上工作,如果需要,创建一个整数列表并在页面加载时将其作为s写入霍恩在上面。