1

ゲッターとセッターを備えたユーザー情報を格納するクラスがあり、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]

リピーターコントロールの使用を検討し、データソースをコレクションに設定することもできます。上記のコードとほとんど同じ考えですが、この方法の方が明確だと思います(私の意見では)。

于 2008-09-24T01:00:28.053 に答える
0

これは、クラスのすべてのインスタンスを取得してジェネリック リストに追加できることを前提としています。

List<YourClass> myObjects = SomeMagicMethodThatGetsAllInstancesOfThatClassAndAddsThemtoTheCollection();
foreach (YourClass instance in myObjects)
{
Response.Write(instance.PropertyName.ToString();
}

各プロパティ名を指定したくない場合は、Reflection を使用して (PropertyInfo を参照)、そのように指定できます。繰り返しますが、これがあなたの意図したものかどうかはわかりません。

于 2008-09-24T00:48:16.973 に答える