熱點推薦:
您现在的位置: 電腦知識網 >> 編程 >> .NET編程 >> 正文

C#高級編程:定制日歷控件[1]

2013-11-13 10:48:45  來源: .NET編程 
    ——此文章摘自《C#高級編程(第版)》定價元 特價元 購買

    在把會議添加到數據庫中之前先修改一下日歷的顯示最好用另一種顏色顯示登記之前的日期以防該日期被選中這要求修改我們在日歷中設置日期的方式以及日期單元格的顯示方式

    首先是日期選擇個地方需要查看會議登記的日期並修改相應選擇一是在Page_ Load()中設置初始日期時第二是在用戶試圖從日歷中選擇日期時第三情況是登記一個會議並設置一個新的日期以防用戶在選擇新日期前在同一天連續登記兩個會議這些都是很常見的情況也可以創建一個私有方法來執行這個計算這個方法應接受一個試用日期作為參數並返回要使用的日期該日期與試用日期相同也可以是試用日期之後的某個日期

    把這個getFreeDate()方法添加到後台編碼文件中
          private SystemDateTime getFreeDate(SystemDateTime trialDate)
          {
             if (eventTableRowsCount > )
             {
                SystemDateTime testDate;
                bool trialDateOK = false;
                while (!trialDateOK)
                {
                   trialDateOK = true;
                   foreach (SystemDataDataRow testRow in eventTableRows)
                   {
                      testDate = (SystemDateTime)testRow[EventDate];
                      if (testDateDate == trialDateDate)
                      {
                         trialDateOK = false;
                         trialDate = trialDateAddDays();
                      }
                   }
                }
             }
             return trialDate;
          }

    這段簡單的代碼使用在Page_Load()中填充的對象eventTable提取會議數據首先看看一般情況沒有登記任何會議此時返回該試用日期以確認該日期接著對Event表中的日期進行迭代把該日期與試用日期比較如果找到一個匹配就給試用日期加一天執行另一次搜索

    從DataTable中提取數據是相當簡單的testDate = (SystemDateTime)testRow[EventDate];

    把列數據轉換為SytemDateTime這樣會更精確

    使用getFreeDate()的第一個地方是在Page_Load()後面這意味只需對設置SelectedDate屬性的代碼稍加修改
             if (!thisIsPostBack)
             {
                SystemDateTime trialDate = SystemDateTimeNow;
                calendarSelectedDate = getFreeDate(trialDate);
                thisDataBind();
             }

[]  []  


From:http://tw.wingwit.com/Article/program/net/201311/14554.html
  • 上一篇文章:

  • 下一篇文章:
  • 推薦文章
    Copyright © 2005-2013 電腦知識網 Computer Knowledge   All rights reserved.