能不能设定calendar中每个月总是显示的是1号开头呢?1 2 3 4 5 6 7
8 9
这样子的效果!

解决方案 »

  1.   

    那好像只能在OnSelectionChanged时重写日历控件了吧。
      

  2.   

    楼主是不是要这种效果啊:
    http://www.skyiv.com/sky/csdn/Calendar1.aspx
      

  3.   

    <%@ Page Language="C#" AutoEventWireup="True" %>
    <html>
    <head>
    <title>每个月总是1号在最左边</title>
    <script language="C#" runat="server">  void Page_Load()
      {
        SetFirstDayOfWeek();
      }  void MonthChange(Object sender, MonthChangedEventArgs e)
      {
        SetFirstDayOfWeek();
      }  void SetFirstDayOfWeek()
      {
        DateTime d1 = calDate.VisibleDate;
        if (d1 == DateTime.MinValue) d1 = DateTime.Now;
        DateTime d2 = new DateTime(d1.Year, d1.Month, 1);
        calDate.FirstDayOfWeek = (FirstDayOfWeek)(d2.DayOfWeek);
      }</script>
    </head>
    <body>
    每个月总是1号在最左边,呵呵
    <form runat="server"><asp:Calendar id="calDate"
      ShowGridLines="true"
      OnVisibleMonthChanged="MonthChange"
      runat="server">
      <TitleStyle         BackColor="DodgerBlue" />
      <OtherMonthDayStyle ForeColor="White"      />
      <SelectedDayStyle   BackColor="#ffcc66"    />
      <WeekendDayStyle    ForeColor="Blue"       />
      <TodayDayStyle      ForeColor="Red" Font-Bold="true"/>
    </asp:Calendar></form>
    </body>
    </html>