博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理

如何让微软的日历控件同时显示两个月的日历

Posted on 2008-06-18 23:11  LonelyStar  阅读(1965)  评论(1)    收藏  举报
这几天做一个项目,需要在一个页面中同时显示两个月的日历,并且当一个日历变化月份的时候,另一个也需要同步变化。
解决方法就是在一个页面中加两个日历控件,然后在Calendar的onvisiblemonthchanged事件中更新另一个Calendar的VisibleDate属性就可以了,代码如下

aspx页面
1<asp:Calendar ID="Calendar1" runat="server" Height="236px" OnVisibleMonthChanged="Calendar1_VisibleMonthChanged"
2        Width="273px"></asp:Calendar>
3    <asp:Calendar ID="Calendar2" runat="server" Height="195px" Width="271px" OnVisibleMonthChanged="Calendar2_VisibleMonthChanged">
4    </asp:Calendar>

cs页面
 1protected void Page_Load(object sender, EventArgs e)
 2        {
 3            if (!IsPostBack)
 4            {
 5                //第一次加载页面的时候,需要更新下一个月的日历控件的显示月份为下一个月
 6                this.Calendar2.VisibleDate = DateTime.Now.AddMonths(1);
 7            }

 8        }

 9
10        protected void Calendar1_VisibleMonthChanged(object sender, MonthChangedEventArgs e)
11        {
12            //让第二个日历控件的时间为第一个日历控件的新的时间的下一个月
13            this.Calendar2.VisibleDate = e.NewDate.AddMonths(1);
14        }

15
16        protected void Calendar2_VisibleMonthChanged(object sender, MonthChangedEventArgs e)
17        {
18            //让第一个日历控件的时间为第二个日历控件的新的时间的上一个月
19            this.Calendar1.VisibleDate = e.NewDate.AddMonths(-1);
20        }

21
22