This way
<asp:Repeater ID = "rptEvents" runat = "server" OnItemDataBound = "OnItemDataBound">
<ItemTemplate>
<asp:Label ID = "lblEvent" Text = '<%# Eval("Event") %>' runat = "server" />
<asp:Label ID = "lblDate" Text = '<%# Eval("Date") %>' runat = "server" />
</ItemTemplate>
<SeparatorTemplate>
<br />
</SeparatorTemplate>
</asp:Repeater>
I have made use of Dummy Datatable to populate repeater. You can directly bind it with the data from database. The important part is OnItemDataBound event
protected void Page_Load(object sender, EventArgs e)
{
DataTable dt = new DataTable();
dt.Columns.AddRange(new DataColumn[2] { new DataColumn("Event"), new DataColumn("Date") });
dt.Rows.Add("Event1", DateTime.Today);
dt.Rows.Add("Event2", DateTime.Today.AddDays(1));
dt.Rows.Add("Event3", DateTime.Today.AddDays(2));
dt.Rows.Add("Event4", DateTime.Today.AddDays(3));
rptEvents.DataSource = dt;
rptEvents.DataBind();
}
protected void OnItemDataBound(object sender, RepeaterItemEventArgs e)
{
if (e.Item.ItemType == ListItemType.Item || e.Item.ItemType == ListItemType.AlternatingItem)
{
Label lblDate = e.Item.FindControl("lblDate") as Label;
DateTime dt = Convert.ToDateTime(lblDate.Text);
if (dt.Date == DateTime.Today.Date)
{
lblDate.Text = "Today";
}
else if (dt.Date == DateTime.Today.AddDays(1).Date)
{
lblDate.Text = "Tomorrow";
}
else
{
lblDate.Text = dt.ToString("dddd dd, MM yyyy");
}
}
}
Output
Event1 Today
Event2 Tomorrow
Event3 Monday 27, 05 2013
Event4 Tuesday 28, 05 2013