DayRender事件,改变输出的样式
LiteralControl:表示 HTML 元素、文本和 ASP.NET 页中不需要在服务器上处理的任何其他字符串。
就是说,可以任何不在服务器端出理的标记,文字等都可以用它生成,比如:</b>,文字等内容
设计如图:
查看源:
<body>
<form id="form1" runat="server">
<div>
<asp:Calendar ID="calNow" runat="server" BackColor="#CCFF99"
BorderColor="#CCFF99" Font-Names="Verdana" Font-Size="9pt"
ForeColor="Black" Height="200px" NextPrevFormat="FullMonth"
onselectionchanged="calNow_SelectionChanged" Width="339px"
ondayrender="calNow_DayRender">
<%--选中日期样式--%>
<SelectedDayStyle ForeColor="White" BackColor="Black"/>
<%--其他月份样式--%>
<OtherMonthDayStyle ForeColor="#999999" />
<%--今天的日期样式--%>
<TodayDayStyle BackColor="#CCCCCC" />
<NextPrevStyle ForeColor="333333" VerticalAlign="Bottom" Font-Bold="true" Font-Size="8pt"/>
<%--今天日期头部样式--%>
<DayHeaderStyle Font-Bold="true" Font-Size="8pt"/>
<%--标题样式--%>
<TitleStyle ForeColor="#333399" BorderColor="Black" Font-Size="12pt"
Font-Bold="True" BackColor="White" BorderWidth="4px"/>
</asp:Calendar>
</div>
</form>
</body>
双击Calender控件:
protected void calNow_SelectionChanged(object sender, EventArgs e)
{
Response.Write("您选择的日期是(you choice is the date):"+calNow.SelectedDate.ToShortDateString());
}
在Calender属性窗口事件当中找到DayRender事件,双击
protected void calNow_DayRender(object sender, DayRenderEventArgs e)
{
//设置对齐方式
e.Cell.VerticalAlign = VerticalAlign.Top;
if (e.Day.DayNumberText == "27")
{
e.Cell.Controls.Add(new LiteralControl("<p>发工资了</p>"));
e.Cell.BackColor = System.Drawing.Color.Blue;
e.Cell.BorderWidth = 1;
//实线边框
e.Cell.BorderStyle = BorderStyle.Solid;
e.Cell.BorderColor = System.Drawing.Color.LightCyan;
}
}