Hi nauna,
Check this example. Now please take its reference and correct your code.
You have to use Calendar OnDayRender event to change the cell value.
HTML
<asp:Calendar ID="Calendar1" runat="server" Width="500px" BorderColor="Red" ForeColor="#663399"
OnDayRender="Calendar1_DayRender" ShowGridLines="True"></asp:Calendar>
Code
C#
private System.Data.DataTable GetData()
{
System.Data.DataTable dt = new System.Data.DataTable();
dt.Columns.Add("Date");
dt.Columns.Add("Desc");
dt.Rows.Add("01/July/2019 ", "party time");
dt.Rows.Add("02/July/2019", "holiday");
dt.Rows.Add("30/June/2019", "holiday");
dt.Rows.Add("15/August/2019", "holiday");
return dt;
}
protected void Calendar1_DayRender(object sender, DayRenderEventArgs e)
{
System.Data.DataTable dt = GetData();
foreach (System.Data.DataRow row in dt.Rows)
{
if (Convert.ToDateTime(e.Day.Date) == Convert.ToDateTime(row["Date"]))
{
e.Cell.Controls.Add(new Label { Text = "<br/>" });
e.Cell.Controls.Add(new Label { Text = row["Desc"].ToString() });
}
}
}
VB.Net
Private Function GetData() As Data.DataTable
Dim dt As Data.DataTable = New Data.DataTable()
dt.Columns.Add("Date")
dt.Columns.Add("Desc")
dt.Rows.Add("01/July/2019 ", "party time")
dt.Rows.Add("02/July/2019", "holiday")
dt.Rows.Add("30/June/2019", "holiday")
dt.Rows.Add("15/August/2019", "holiday")
Return dt
End Function
Protected Sub Calendar1_DayRender(ByVal sender As Object, ByVal e As DayRenderEventArgs)
Dim dt As Data.DataTable = GetData()
For Each row As Data.DataRow In dt.Rows
If Convert.ToDateTime(e.Day.Date) = Convert.ToDateTime(row("Date")) Then
e.Cell.Controls.Add(New Label With {.Text = "<br/>"})
e.Cell.Controls.Add(New Label With {.Text = row("Desc").ToString()})
End If
Next
End Sub
Screenshot