我想以日历从当前日期开始的方式自定义日历控件 例如。今天是2月29日,它应该在日历中显示2月9日的第一个日期。
是否可以使用asp.net日历控件?
答案 0 :(得分:2)
默认情况下,<asp:Calendar />
控件会显示当前月份。
如果您愿意,可以使用VisibleDate
属性覆盖。
请您澄清一下它应该从今天开始的意思吗?本月其余时间应该怎么办?
如果您希望灰显或禁用当月的其他日期,请加入OnDayRender
事件,该事件将在每天呈现时运行,并且您可以访问日期和单元格,以便您可以执行类似的东西。
protected void Calendar1_OnDayRender(object sender, DayRenderEventArgs e) {
if(e.Day.Date < DateTime.Now) {
e.Cell.CssClass="disabled";
}
}
您需要知道的另一个属性是SelectedDate
属性。设置此项相当于点击该特定日期。
答案 1 :(得分:1)
您可以设置SelectedDate属性。假设您的日历名称是MyCal,您可以这样设置第一个月日期:
myCal.SelectedDate = New Date(DateTime.Now.Year, DateTime.Now.Month, 1)
附录
尝试使用此代码:
protected void Page_Load(object sender, EventArgs e)
{
MyCal.SelectedDate = DateTime.Now.Date;
}
protected void MyCal_DayRender(object sender, DayRenderEventArgs e)
{
if (e.Day.Date < DateTime.Now.Date)
{
e.Cell.Visible = false;
}
}
protected void MyCal_VisibleMonthChanged(object sender, MonthChangedEventArgs e)
{
if (e.NewDate.Month == DateTime.Now.Date.Month - 1)
{
MyCal.SelectedDate = e.PreviousDate;
MyCal.VisibleDate = e.PreviousDate;
}
}
通过这种方式你: