asp.NET Calarder日曆控制項支援節日提示

來源:互聯網
上載者:User

下面先熟悉下Calarder控制項的常用屬性:

SelectionMode:是指定是否可選擇天、周、整月,是一個CalendarSelectionMode枚舉;

SelectedDate:是得到或設定當前選擇的時間,是一個DateTime結構;

VisibleDate:是得到或設定日曆顯示的日期,是一個DateTime結構;

PrevMonthText:是切換上個月的符號,可以用‘上個月’表示,是string類型;

NextMonthText:是切換下個月的符號,可以用‘下個月’表示,是string類型;

SelectMonthText:是顯示選擇整個月的符號,可以用‘選擇整月’表示,是string類型;

SelectWeekText:是顯示選擇整個周的符號,可用‘選擇’表示,是string類型;

ShowGridLines:是否顯示出網格線,是Boolean類型;

常用事件:

SelectionChanged:當選擇一個日期時觸發;

DayRender:當在載入日曆控制項時觸發,相當於OnRender事件;

VisibleMonthChanged:只要對月份進行操作都觸發;

下面進入正題,怎麼實現自訂日曆控制項:

1.在Page_Init方法中執行個體化個String型二維數組分別是以月份和天數做長度,再把對應日期的節日寫出來以便後面顯示,如:

 代碼如下 複製代碼

private string[][] arr;

protected void Page_Init(object sender, EventArgs e)
        {
             arr = new string[13][] ;//分別為 月
             for (int i = 0; i < 13; i++)
             {
                 arr[i] =new string[32];//為年、月進行賦值
             }
             arr[1][1] = "元旦節";
             arr[2][14] = "情人節";
             arr[3][8] = "婦女節";
             arr[3][20] = "姐姐的生日";
             arr[3][12] = "植樹節";
             arr[4][16] = "媽媽的生日";
             arr[4][29] = "我的生日";
             arr[5][1] = "勞動節";
             arr[6][1] = "兒童節";
             arr[7][1] = "建黨節";
             arr[8][1] = "建軍節";
             arr[8][10] = "爸爸的生日";
             arr[9][10] = "教師節";
             arr[10][1] = "國慶節";
             arr[12][24] = "平安夜";
             arr[12][25] = "聖誕節";
            
        }

2.主要在DayRender事件進行操作;

 代碼如下 複製代碼
 protected void Calendar3_DayRender(object sender, DayRenderEventArgs e)
        {
            CalendarDay day = e.Day;//設定當前日期
            TableCell cells = e.Cell;//設定表格
            if (day.IsOtherMonth)//如果是其它節內容就清除本節內容Calendar是個日期限制的;
            {
                cells.Controls.Clear();
            }
            else
            {
                try
                {
                    string txt = arr[day.Date.Month][day.Date.Day];//得到完整的月、日與數組進行匹配
                    if (!string.IsNullOrEmpty(txt))//判斷當前是否有節日
                    {
                        cells.Controls.Add(new LiteralControl(string.Format("<br><font color=red>{0}</font>", txt)));//把這個 紅色的字串 加在顯示的日期後面
                    }
                }
                catch (Exception)
                {
                    Response.Write("<font color='red'><h1>分頁錯誤!</h1></font>");
                }
            }
        }

到了這裡就可完成顯示了,但我們想得到部落格園那樣顯示出連結的日曆,比如:今天發了篇部落格,就要把今天的日期高亮顯示並具有超連結,那又該怎麼實現呢?第二篇部落格再講述。

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.