惯性聚合 高效追踪和阅读你感兴趣的博客、新闻、科技资讯
阅读原文 在惯性聚合中打开

推荐订阅源

WordPress大学
WordPress大学
Microsoft Azure Blog
Microsoft Azure Blog
aimingoo的专栏
aimingoo的专栏
Vercel News
Vercel News
U
Unit 42
L
LangChain Blog
J
Java Code Geeks
钛媒体:引领未来商业与生活新知
钛媒体:引领未来商业与生活新知
The Cloudflare Blog
F
Fortinet All Blogs
小众软件
小众软件
I
InfoQ
P
Proofpoint News Feed
D
DataBreaches.Net
Martin Fowler
Martin Fowler
H
Help Net Security
T
Tailwind CSS Blog
N
Netflix TechBlog - Medium
有赞技术团队
有赞技术团队
Y
Y Combinator Blog
Recent Announcements
Recent Announcements
B
Blog RSS Feed
酷 壳 – CoolShell
酷 壳 – CoolShell
B
Blog

博客园 - 骑着夕阳看着猪

asp.net mvc 中hmtl.xxxx是否使用<%=... %> 高版本(vs2008)如何打开低版本解决方案和项目(vs2003、vs2005的项目) 序列化和反序列化 sql 根据父节点查找所有子节点 一步一步学jquery UI 1.72 之datepicker - 骑着夕阳看着猪 显示日期是当前区间第几周? - 骑着夕阳看着猪 - 博客园 c# 日期相减 如何使图片在div里上下居中 - 骑着夕阳看着猪 - 博客园 实现qq邮箱换肤(第二季 ) - 骑着夕阳看着猪 - 博客园 实现qq邮箱换肤(第一季 ) 获取元素和鼠标的位置(兼容IE6.0,IE7.0,IE8.0,FireFox2.0,FireFox3.5,Opera) img src='' 为空引发的问题 - 骑着夕阳看着猪 如何清除html图片缓存 - 骑着夕阳看着猪 - 博客园 关于 wcf揭秘 第四章代码运行错误 - 骑着夕阳看着猪 配置SQL Server2005以允许远程访问 SQL Server2005还原数据库详细 初试ajax基础 实现控件的随意拖动 BindingManagerBase的应用
用jquery实现学校的校历
骑着夕阳看着猪 · 2009-12-29 · via 博客园 - 骑着夕阳看着猪

学校日历有以下几个特点:1显示本周是本学期的第几周;2显示今日事件;3特殊显示有事件的日期,点击该日期显示本日事件。

截图:

controller代码:

代码

        public ActionResult CalendarDisplay() 
        {
            BL.DateEventBL de 
= new BL.DateEventBL();//获取当日日期,使用能被javascript转换成日期的格式
            DateTimeFormatInfo myDTFI = new CultureInfo("en-US"false).DateTimeFormat;
            
string utcTime = DateTime.Now.ToString("MMM dd,yyyy HH:mm:ss", myDTFI);
        
            ViewData[
"currentDay"= utcTime;//获取当月有事件的日期
            List<DateTime> dateHaveEvent = de.GetTimeHaveEvent(DateTime.Now.Year, DateTime.Now.Month);
            List
<String> dates=dateHaveEvent.Select(u=>u.ToString("MMM dd,yyyy HH:mm:ss", myDTFI)).ToList();
            ViewData[
"datesHaveEvent"= dates;//获取当日事件
            List<BL.CDateEvent> deInfos = de.GetDE(DateTime.Now, new Guid("00000000-0000-0000-0000-000000000001"));//获取当前周
            BL.DateSpanBL ds = new BL.DateSpanBL();
            
int currentWeek = ds.GetCurrentWeek(DateTime.Now, new Guid("00000000-0000-0000-0000-000000000002"));
            ViewData[
"currentWeek"= currentWeek;
            
return View(deInfos);
        }

partialview(局部视图):

代码

<%@ Control Language="C#" Inherits="System.Web.Mvc.ViewUserControl<IEnumerable<BL.CDateEvent>>" %><%string json = ""; List<String> datesHaveEvent = ViewData["datesHaveEvent"as List<String>%><%
              
if (datesHaveEvent != null && datesHaveEvent.Count > 0)
            {
                json 
= "[";
                
for (int i = 0; i < datesHaveEvent.Count;i++)
                {
                    
if (i == datesHaveEvent.Count - 1)
                    {
                        json 
+= "{\"time\":\"" + datesHaveEvent.ElementAt(i) + "\"}";   // 最后一项
                    }
                    
else
                    {
                        json 
+= "{\"time\":\"" + datesHaveEvent.ElementAt(i) + "\"},";   //
                    }
                   
                }
                json 
+= "]";
            }
%><div id="datePicker"></div><br />

当前是第 

<span style="color:Red; font-size:14px;"><%=ViewData["currentWeek"]%> </span> 周
<br />
<%=DateTime.Now.ToShortDateString() %>
<br /><% 
    foreach(var item in Model)
    {
%><%=Html.Encode(item.Content) %><%
   } 
%>
<br /><div id="otherEvent" style=" width:300px;"></div>

javascript(脚本):

代码


///服务器与客户端当前时间的转换
    var a='<%= ViewData["currentDay"]%>';
    
var b = Date.parse(a);
    
var serviceDate = new Date(b);
    
var clientDate = new Date();var yearOffset = serviceDate.getYear() - clientDate.getYear();var monthOffset = serviceDate.getMonth() - clientDate.getMonth();var dayOffset = serviceDate.getDate() - clientDate.getDate();///获取日期列表
    var jsn = eval('<%=json %>');

    $(

function() {
        
var options = {
            prevText: 
"上一月",   //跳转到上一页的提示文本
            nextText: '下一月',   //跳转到下一页的提示文本

            minDate: 
-30,
            maxDate: 
30,
            hideIfNoPrevNext: 
false,

            defaultDate: 

"+" + yearOffset + "y +" + monthOffset + "m +" + dayOffset + "d",

            beforeShowDay: DisplayDayHaveEvent,  

//显示每个日期之前的操作
            onSelect: select                     // 选择一个日期的回调函数
        };function DisplayDayHaveEvent(date) {for (var i = 0; i < jsn.length; i++) {var cc = Date.parse(jsn[i].time);
                
var time = new Date(cc);if (date.getMonth() == time.getMonth() && date.getDate() == time.getDate()) {
                    
return [true""]
                }
            }
return [false""];
        }
function select(dateText, inst) {
            $(
'#otherEvent').load("http://www.cnblogs.com/Calendar/EventDetail?date=" + dateText);
            
return false;
        }
//初始化日期控件
        $('#datePicker').datepicker(options);

    })