信息产业培训网

C#高级编程:定制日历控件[1]

http://www.miiceic.org.cn   2008-2-27 15:35:29   中程在线   浏览数:
关键字:.net

    在把会议添加到数据库中之前,先修改一下日历的显示。最好用另一种颜色显示登记之前的日期,以防该日期被选中。这要求修改我们在日历中设置日期的方式,以及日期单元格的显示方式。

    首先是日期选择。有3个地方需要查看会议登记的日期,并修改相应选择:一是在Page_ Load()中设置初始日期时,第二是在用户试图从日历中选择日期时,第三情况是登记一个会议,并设置一个新的日期,以防用户在选择新日期前,在同一天连续登记两个会议。这些都是很常见的情况,也可以创建一个私有方法来执行这个计算。这个方法应接受一个试用日期作为参数,并返回要使用的日期,该日期与试用日期相同,也可以是试用日期之后的某个日期。

    把这个getFreeDate()方法添加到后台编码文件中:
          private System.DateTime getFreeDate(System.DateTime trialDate)
          {
             if (eventTable.Rows.Count > 0)
             {
                System.DateTime testDate;
                bool trialDateOK = false;
                while (!trialDateOK)
                {
                   trialDateOK = true;
                   foreach (System.Data.DataRow testRow in eventTable.Rows)
                   {
                      testDate = (System.DateTime)testRow["EventDate"];
                      if (testDate.Date == trialDate.Date)
                      {
                         trialDateOK = false;
                         trialDate = trialDate.AddDays(1);
                      }
                   }
                }
             }
             return trialDate;
          }

    这段简单的代码使用在Page_Load()中填充的对象eventTable提取会议数据。首先看看一般情况:没有登记任何会议,此时返回该试用日期,以确认该日期,接着对Event表中的日期进行迭代,把该日期与试用日期比较。如果找到一个匹配,就给试用日期加一天,执行另一次搜索

    从DataTable中提取数据是相当简单的:testDate = (System.DateTime)testRow["EventDate"];

    把列数据转换为Sytem.DateTime,这样会更精确。

    使用getFreeDate()的第一个地方是在Page_Load()后面。这意味只需对设置SelectedDate属性的代码稍加修改:
             if (!this.IsPostBack)
             {
                System.DateTime trialDate = System.DateTime.Now;
                calendar.SelectedDate = getFreeDate(trialDate);
                this.DataBind();
             }

来源:csai
相关连接
最新评论
*以下网友发言不代表中程在线网站的观点和看法
    我要评论

    请您注意
    1、遵守中华人民共和国的各项有关法律规定
    2、承担一切因您的行为而导致的法律责任
    3、本网留言管理人员有权删除其管辖留言内容
    4、您在本网的留言本网有权在网站内转载和引用
    5、参与本留言即表明您已经阅读并接受上述条款
    我爱研发网中电华信阿里西西JAVA爱好者北京英才网全球大学查询网
    中国人的网站导航中国电脑论坛信息产业部新浪科技搜狐IT信息产业部电子教育与考试中心
    IT世界网软件项目交易网中国软件交易网国信培训网亚远景科技....[更多]
    关于我们 | 网站地图 | 周边住宿 | 行车路线 | 联系我们 | 网站律师 | 意见反馈 | 虚位以待 | 友情链接
    中程在线(北京)科技有限公司 版权所有
    总 部:北京市海淀区青东商务楼A座西四层
    企业培训部:010-52636110 52636106 就业培训部:010-68716925 68716926
    邮 件:training@miiceic.org.cn
    京ICP备06053134号
    Copyright © 2005-2008 Miiceic.org.cn All Rights Reserved