lvrocky 发表于 2012-12-22 21:27:48

脚本实现课表展示

<div id="cnblogs_post_body">功能描述:类似于日程表,列出一周内某个时间段的日程。如:本人9:00到10:00有课,那么在课表中9:00-10:00这个时间段呈现蓝色格子(td),当鼠标移到蓝色格子上方时呈现具体事件。如图:
http://pic002.cnblogs.com/images/2012/455151/2012112616130256.jpg
代码实现(MVC3.0):
后台Action:
<div class="cnblogs_code" >http://images.cnblogs.com/OutliningIndicators/ContractedBlock.gifhttp://images.cnblogs.com/OutliningIndicators/ExpandedBlockStart.gifView Code <div id="cnblogs_code_open_cbcf0779-66b9-4bb8-9295-ff02733c6bea" class="cnblogs_code_hide"> 1   public ActionResult TeacherSchedule() 2       { 3             DateTime dt = DateTime.Now; 4 5             var customer = _workContext.CurrentCustomer; 6             int id = customer.Id; 7             var TeacherId = from t1 in WTDB.WT_Teacher 8                           where t1.CustomerID == id 9                           select t1.TeacherID;10             if (TeacherId.Count() > 0)11             {12               var UserSchedule = from varSchedule in WTDB.View_Schedule13                                    where varSchedule.TeacherID== TeacherId.First() && Convert.ToDateTime(varSchedule.StartTime).Date >= DateTime.Now.Date14                                    select varSchedule;//个人课表信息15               foreach (var TimeList in UserSchedule)16                 {17                     for (int n = 0; n <= 7; n++)18                   {19                         if (DateTime.Now.AddDays(n).Date == ((DateTime)TimeList.StartTime).Date)20                         {21                           for (int i = 0; i <= 23; i++)22                             {23                                 if (((DateTime)TimeList.StartTime).Hour == i)24                               {25                                     Random ra = new Random();26 27                                     ViewData = n.ToString() + i.ToString();//坐标28                                     ViewData["start" + n.ToString() + i.ToString()] = Convert.ToDouble(((DateTime)TimeList.StartTime).Minute) / Convert.ToDouble(60);//起始点29                                     ViewData["end" + n.ToString() + i.ToString()] = Convert.ToDouble(((DateTime)TimeList.StartTime).AddMinutes((double)TimeList.TimeLength).Minute / Convert.ToDouble(60));//结束点30                                     ViewData["jg" + n.ToString() + i.ToString()] = (int)TimeList.TimeLength / 60;//跨时间31 32 33 34 35 36                               }37 38 39                             }40                         }41                   }42                 }43 44 45               return View(UserSchedule);46             }47             else48             {49               return View();50             51             }52         }
页: [1]
查看完整版本: 脚本实现课表展示