C # Как установить NewLine в Label.text для CartItem []? - PullRequest
0 голосов
/ 03 апреля 2011

Как установить NewLine в Label.text для CartItem[]?Environment.NewLine или \r\n не работает.

CartItem[] items = Profile.Cart.GetItems();
  foreach (CartItem i in items)
     Label4.Text += i.curDvd.Title + ",$" + i.curDvd.UnitPrice + "*" + i.Quantity + System.Environment.NewLine+"\r\n";

Может отображать все в 1 строку, но пробовал \r\n и Enviroment.NewLine, ничего не изменилось.

Почему?

Ответы [ 2 ]

0 голосов
/ 03 апреля 2011

Вы пытались использовать более одного "\ n"?

0 голосов
/ 03 апреля 2011

В веб-приложении вы должны использовать <br/>, если вы хотите новую строку. К сожалению, вы не можете использовать метку в этом случае, так как она будет автоматически кодировать текст HTML. Вы можете использовать ретранслятор в месте этого ярлыка:

<asp:Repeater ID="rep" runat="server">
    <ItemTemplate>
        <%# Eval("Title") %>, $<%# Eval("Price") %>
        <br/>
    </ItemTemplate>
</asp:Repeater>

и в вашем коде:

protected void Page_Load(object sender, EventArgs e)
{
    if (!IsPostBack)
    {
        CartItem[] items = Profile.Cart.GetItems();
        rep.DataSource = items.Select(x => new
        {
            Title = x.curDvd.Title,
            Price = x.curDvd.UnitPrice * x.Quantity
        });
        rep.DataBind();
    }
}

Другой возможный шаблон - использовать div:

<asp:Repeater ID="rep" runat="server">
    <ItemTemplate>
        <div><%# Eval("Title") %>, $<%# Eval("Price") %></div>
    </ItemTemplate>
</asp:Repeater>
...