Mamy klasę SimpleItem która zawiera tytuł i tresc wiadomosci:
class SimpleItem
{
public string Title
{
set
{
title = value;
}
get
{
return title;
}
}
public string Tresc
{
set
{
tresc = value;
}
get
{
return tresc;
}
}
string title;
string tresc;
/// <summary>
/// Default constructor
/// </summary>
public SimpleItem()
{
this.title = "";
this.tresc = "";
}
public SimpleItem(string tytul, string tresc)
{
this.title = tytul;
this.tresc = tresc;
}
}
Podczas wczytywania strony robimy jakieś 3 newsy, dla przykładu które są wiązane z kontrolką Repeater o ID "NewsSystem".
protected void Page_Load(object sender, EventArgs e)
{
if (!IsPostBack)
{
Collection<SimpleItem> myCol = new Collection<SimpleItem>();
myCol.Add(new SimpleItem("Tytul wiadomosci 1", "Tresc wiadomosci 1, Tresc wiadomosci 1, Tresc wiadomosci 1 "));
myCol.Add(new SimpleItem("Tytul wiadomosci 2", "Tresc wiadomosci 2, Tresc wiadomosci 2, Tresc wiadomosci2 "));
myCol.Add(new SimpleItem("Tytul wiadomosci 3", "Tresc wiadomosci 3, Tresc wiadomosci3, Tresc wiadomosci 3"));
NewsSystem.DataSource = myCol;
NewsSystem.DataBind();
}
}
Repeater:
<asp:Repeater runat="server" ID="NewsSystem">
<HeaderTemplate>
<table>
<tr>
<td style="width:250px">Najnowsze wiadomosci
</td>
</tr>
</table>
</HeaderTemplate>
<ItemTemplate>
<table>
<tr>
<td style="width:250px"><asp:Label ID="txtTitle" runat="server" width="250px" Text='<%# Eval("Title") %>'></asp:Label>
</td>
</tr>
<tr>
<td style="width:250px"><asp:Label ID="txtTresc" runat="server" Width="250px" Text='<%# Eval("Tresc") %>'></asp:Label>
</td>
</tr>
</table>
</ItemTemplate>
</asp:Repeater>
Pytanie za 100 pktów, czy ktoś wie może jakich kontrolek użyć lub jak zrobić to że np. po 200 znakach wiadomość jest zawinięta i mamy pokazane tylko te 200 znaków, po kliknięciu np. "Więcej" przenosi nas do strony wiadomosci z całą jej treścią. No i teraz pytanie drugie, czy dla każdej wiadomosci musiałbym robic nowy *.aspx ? Czy jest to jakoś zoptymalizowane i C#(ASP.NET) sam sobie będzie to robił? Dajmy na to znając treść całej wiadomosci itp.?