C#, how to generate new html Div during foreach loop?

asp.net, c#

Solution

Ideally, markup manipulation should be done using data-binding within your `.aspx` file rather than in your codebehind, but anyway:

foreach(PSObject psObject in output) {
    HtmlGenericControl div = new HtmlGenericControl("div");
    div.Controls.Add( new Label() { Text = psObject + "\r\n"; } );
    div1.Controls.Add( div );
}

This is how I would do it in the aspx file:

<div id="div1">
<% foreach(PSObject psObject in output) { %>
    <div>
    <%: psObject %>
    </div>
<% } //foreach %>
</div>

Note the use of `<%: foo %>` which is equivalent to `<%= Server.HtmlEncode( foo ) %>`.

Problem

Depend of number of results I got like 3 results and I want to assign each result to label text and put to new Div each new line. How I do that? `Collection<PSObject> output = pipeline.Invoke();` is where I stored results. Here a sample C# codes, ``` foreach(PSObject psObject in output) { Label ipLabel = new Label(); ipLabel.Text = psObject + "\r\n"; div1.Controls.Add(ipLabel); } ``` Here a asp.net codes, ``` <div id="div1" runat="server"></div> ``` I got the right Label results but it all displayed in 1 div line instead of every div new line .

Original source