ASP.NET Calendar日历(日期)控件使用方法
calendar 控件显示一个日历,用户可通过该日历导航到任意一年的任意一天。当 asp.net 网页运行时,calendar 控件以 html 表格的形式呈现。因此,该控件的许多属性与多种不同的表格格式相符。在这些属性中,有几个在一些低版本的浏览器中不能得到完全支持,因此在这些浏览器中并不能使用所有的格式功能。
使用 calendar 控件在网页上显示日历的单个月。该控件使您可以选择日期并移到下个月或上个月。calendar 控件支持 system.globalization 命名空间中的所有 system.globalization.calendar 类型。除公历以外,这还包括使用不同年和月系统的日历,如 hjiri 日历。
可以通过设置 selectionmode 属性指定 calendar 控件是否允许选择单日、周或整月。
默认情况下,该控件显示月中各天、周中各天的标头、带有月份名和年份的标题、用于选择月份中各天的链接及用于移动到下个月和上个月的链接。您可以通过设置控制控件中不同部分的样式的属性,来自定义 calendar 控件的外观。下表列出了指定控件不同部分的样式的属性。
属性 说明
dayheaderstyle | 为显示一周中各天的部分指定样式。 |
daystyle | 为显示的月份中的日期指定样式。 |
nextprevstyle | 为标题部分中的导航控件指定样式。 |
othermonthdaystyle | 为不在当前显示的月份中的日期指定样式。 |
selecteddaystyle | 为日历中的选定日期指定样式。 |
selectorstyle | 为周和月份日期选择列指定样式。 |
titlestyle | 为标题部分指定样式。 |
todaydaystyle | 为今天日期指定样式。 |
weekenddaystyle | 为周末日期指定样式。 |
也可以显示或隐藏控件的不同部分。下表列出控制显示或隐藏哪些部分的属性。
showdayheader | 显示或隐藏显示一周中各天的部分。 |
showgridlines | 显示或隐藏月中各天之间的网格线。 |
shownextprevmonth | 显示或隐藏指向下个月或上个月的导航控件。 |
showtitle | 显示或隐藏标题部分。 |
尽管 calendar 控件不支持绑定到数据源,但是可以修改各个日期单元格的内容和格式设置。在网页上显示 calendar 控件之前,它创建并汇编组成该控件的组件。当创建 calendar 控件中的每个日期单元格时,均会引发 dayrender 事件。通过在 dayrender 事件的事件处理程序中提供代码,可以在创建日期单元格时控制其内容和格式设置。
calendar 控件将 ecmascript(jscript、javascript)呈现给客户端浏览器。客户端浏览器必须启用 ecmascript,此控件才能正常工作。
下面的代码示例演示如何在网页上创建 calendar 控件。
前台代码:
<%@ page language="c#" autoeventwireup="true" codefile="calendar.aspx.cs" inherits="webcontrols_calendar" %> <!doctype html public "-//w3c//dtd xhtml 1.0 transitional//en" "http://www.w3.org/tr/xhtml1/dtd/xhtml1-transitional.dtd"> <html xmlns="http://www.w3.org/1999/xhtml"> <head runat="server"> <title></title> <style type="text/css"> .style1 { width: 369px; } </style> </head> <body> <form id="form1" runat="server"> <div> <h3>calendar(日期控件)</h3> <table style="width: 100%;"> <tr> <td class="style1"> 属性</td> <td> 值</td> <td> 作用</td> </tr> </table> <hr /> 请选择日期:<asp:calendar id="caldate" runat="server"></asp:calendar> <asp:button id="btnsubmit" runat="server" text="提交" onclick="btnsubmit_click" /> <hr /> 请选的日期为:<asp:label id="lblstate" runat="server"></asp:label> <br /> <br /> 本地日期和时间为:<asp:label id="lblbendishijian" runat="server"></asp:label> </div> </form> </body> </html>
后台代码:
using system; using system.collections.generic; using system.web; using system.web.ui; using system.web.ui.webcontrols; public partial class webcontrols_calendar : system.web.ui.page { protected void page_load(object sender, eventargs e) { lblbendishijian.text = system.datetime.now.tostring(); } protected void btnsubmit_click(object sender, eventargs e) { lblstate.text = caldate.selecteddate.toshortdatestring(); } }
显示效果:
请选的日期为:2013-03-13
本地日期和时间为:2013-03-06 10:22:23