ゲッターとセッターを備えたユーザー情報を格納するクラスがあり、XMLファイルからのデータが入力されているとします。Java Beanやタグライブラリで行うように、そのクラスのすべてのインスタンスをどのように反復しますか?
Ethan Gunderson
質問する
437 次
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 に答える