• JQuery FullCalendar(一)


    FullCalendar官网:http://arshaw.com/fullcalendar

    FullCalendar中文API:http://blog.sina.com.cn/s/blog_9475b1c101012c5f.html

    FullCalendar日历插件说明文档http://www.helloweba.com/view-blog-231.html

     

    一、准备相关JS文件

    <link href="CSS/fullcalendar.css" rel="stylesheet" type="text/css" />
    <script src="JS/jquery-1.9.1.js" type="text/javascript"></script>
    <script src="JS/jquery-ui-1.10.3.custom.min.js" type="text/javascript"></script>
    <script src="JS/fullcalendar.min.js" type="text/javascript"></script>

     

    二、JS代码

    FullCalendar通过events的设置向数据源请求数据,要求返回的JSON数据格式如下

    [
        {
            "id": 1,
            "title": "正常上班",
            "start": "2013/11/19 17:26:54",
            "end": "2013/11/19 17:26:54",
            "url": null,
            "allDay": "True",
            "color": "#666"
        }
    ]

    待会根据这个格式,设计数据库

    fullCalendar工具:formatDate
    调用方法:$.fullCalendar.formatDate(time,formatstring)

    events设置数据源,同时可以传递start,end两个参数,该视图的第一天日期和最后一天日期(并非该月或者星期)

    <script type="text/javascript">
            $(function () {
                $('#calendar').fullCalendar({
                    header: {//set header info
    left: 'prev,next today', center: 'title', right: 'month,agendaWeek,agendaDay' }, firstDay: 7, editable: true, //send startParam,endParam to json.ashx events: function (start, end, callback) { $.getJSON("json.ashx", { "start": $.fullCalendar.formatDate(start, "yyyy-MM-dd HH:mm:ss"), "end": $.fullCalendar.formatDate(end,"yyyy-MM-dd HH:mm:ss") }, function (json) { callback(json); }); }
                });
            });
        </script>

     

    三、HTML代码

    <div id='calendar'></div>

     

    四、数据库设计

    创建数据表calendar表,包含字段:

    id(int ,not null),

    title(nvarchar(200),not null),

    start(datetime, not null),

    end(datetime, defaultValue:1970/1/1 8:00:00),

    url(nvarchar(200)),

    allDay(bit),

    color(nvarchar(200) ,defaultValue:#666),

    title和start是必要的字段

    五、后台json.ashx,返回json数据

                  DateTime start = Convert.ToDateTime( context.Request["start"]);
                DateTime end = Convert.ToDateTime( context.Request["end"]);
                AddNewsDataContext db = new AddNewsDataContext();
                var res = from i in db.calendar
                          //注意时间的开闭区间
                          where i.start >= start && i.start <= end || i.end >= start && i.end <= end 
                          select new
                          {
                              id = i.Id,
                              title=i.title,
                              start = i.start.Value.Year + "/" + i.start.Value.Month + "/" + i.start.Value.Day + " " + i.start.Value.Hour + ":" + i.start.Value.Minute + ":" + i.start.Value.Second ,
                              end = i.end.Value.Year + "/" + i.end.Value.Month + "/" + i.end.Value.Day + " " + i.end.Value.Hour + ":" + i.end.Value.Minute + ":" + i.end.Value.Second,
                              url=i.url.ToString(),
                              allDay=i.allDay,
                              color=i.color.ToString()
                          };
                JavaScriptSerializer jss = new JavaScriptSerializer();
                string json=jss.Serialize(res);
                context.Response.Write(json);

    六、效果

    allDay为false的时候显示时间

    image

  • 相关阅读:
    工厂与抽象工厂
    memcache的分布式配置
    Windows下的 mysql 5.5主从同步配置
    sql执行超时处理
    RabbitMQ远程访问配置
    事件驱动与流程驱动
    数据库连接池的配置和使用
    mysql常见的hint(转载的)
    数据库结构的设计与如何最大限度的利用索引
    [asp.net webfrom+spring.net Error] Resource handler for the 'web' protocol is not defined.
  • 原文地址:https://www.cnblogs.com/wubian/p/3433133.html
Copyright © 2020-2023  润新知