随笔 - 165, 文章 - 0, 评论 - 18, 阅读 - 22万
  博客园  :: 首页  :: 新随笔  :: 联系 :: 订阅 订阅  :: 管理
< 2025年3月 >
23 24 25 26 27 28 1
2 3 4 5 6 7 8
9 10 11 12 13 14 15
16 17 18 19 20 21 22
23 24 25 26 27 28 29
30 31 1 2 3 4 5

fullCalendar使用经验总结

Posted on   火冰·瓶  阅读(1621)  评论(0编辑  收藏  举报

fullCalendar日历控件官方网址: https://fullcalendar.io/

1.需要引入的文件

1
2
3
4
5
6
<link href="~/assets/fullcalendar-3.9.0/fullcalendar.min.css" rel="stylesheet" />
<link href="~/assets/fullcalendar-3.9.0/fullcalendar.print.min.css" rel="stylesheet" media="print" />
<script src="~/assets/fullcalendar-3.9.0/lib/moment.min.js"></script>
@*<script src="~/assets/fullcalendar-3.9.0/lib/jquery.min.js"></script>*@
<script src="~/assets/fullcalendar-3.9.0/fullcalendar.min.js"></script>
<script src="~/assets/fullcalendar-3.9.0/locale/zh-cn.js"></script>

 

2.HTML页面 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
<style>
html, body {
margin: 0;
padding: 0;
}
 
#script-warning {
display: none;
background: #eee;
border-bottom: 1px solid #ddd;
padding: 0 10px;
line-height: 40px;
text-align: center;
font-weight: bold;
font-size: 12px;
color: red;
}
 
#loading {
display: none;
position: absolute;
top: 50%;
right: 50%;
}
 
#calendar {
max-width: 800px;
margin: 0px auto;
}
</style>
 
 
 
校区:
<select id="XiaoQu" name="XiaoQu">
<option value="18">锦江校区</option>
<option value="19">高新校区</option>
</select>
<div id="script-warning">出错了</div>
<div id="loading">加载中......</div>
<div id='calendar'></div>
 
  
 
$(function () {
            $('#calendar').fullCalendar({
                header: {
                    left: 'prev,next today',
                    center: 'title',
                    right: 'month,basicWeek,basicDay,listWeek'
                },
                defaultView: 'month',
                defaultDate: '@showDate.ToString("yyyy-MM-dd")'//默认显示的日期
                locale: 'zh-cn',
                events: {
                    url: '@Url.Action("JsonData")',    //获取json数据的url
                    data: function () { // a function that returns an object
                        return {
                            place: $("#XiaoQu").val()    //额外的动态参数
                        };
                    },
                    error: function () {
                        $('#script-warning').show();
                    }
                },
                loading: function (bool) {
                    $('#loading').toggle(bool);
                }
            });
 
 
            $("#XiaoQu").change(function () {
                $('#calendar').fullCalendar('refetchEvents');//重新加载数据
            });
        });

 

3.生成Json数据的后台

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
public async Task<String> JsonData(DateTime start, DateTime end,int place)
        {
            var list = await _context.RoomConfigure.Where(g =>g.PlaceID==place &g.StartTime.Date.CompareTo(start) > 0 & g.StartTime.Date.CompareTo(end) < 0).ToListAsync();
 
            StringBuilder resultStr = new StringBuilder();
            resultStr.Append("[");
 
            foreach (var item in list)
            {
                resultStr.Append("{");
                resultStr.Append("\"title\": \"可预约" + item.Number + "\",");
                resultStr.Append("\"start\": \"" + item.StartTime.ToString("yyyy-MM-ddTHH:mm:sszzzz", System.Globalization.DateTimeFormatInfo.InvariantInfo) + "\",");
                resultStr.Append("\"allDay\": false");
                resultStr.Append("},");
            }
 
            if (list.Count > 0)
            {
                resultStr.Remove(resultStr.Length - 1, 1);
            }
 
            resultStr.Append("]");
 
            string jsonStr = "[{\"title\":\"All Day Event\",\"start\":\"2018-03-01\"},{\"title\":\"Long Event\",\"start\":\"2018-03-07\",\"end\":\"2018-03-10\"},{\"id\":\"999\",\"title\":\"Repeating Event\",\"start\":\"2018-03-09T16:00:00-05:00\"},{\"id\":\"999\",\"title\":\"Repeating Event\",\"start\":\"2018-03-16T16:00:00-05:00\"},{\"title\":\"Conference\",\"start\":\"2018-03-11\",\"end\":\"2018-03-13\"},{\"title\":\"Meeting\",\"start\":\"2018-03-12T10:30:00-05:00\",\"end\":\"2018-03-12T12:30:00-05:00\"},{\"title\":\"Lunch\",\"start\":\"2018-03-12T12:00:00-05:00\"},{\"title\":\"Meeting\",\"start\":\"2018-03-12T14:30:00-05:00\"},{\"title\":\"Happy Hour\",\"start\":\"2018-03-12T17:30:00-05:00\"},{\"title\":\"Dinner\",\"start\":\"2018-03-12T20:00:00\"},{\"title\":\"Birthday Party\",\"start\":\"2018-03-13T07:00:00-05:00\"},{\"title\":\"Click for Google\",\"url\":\"http://google.com/\",\"start\":\"2018-03-28\"}]";
            //return jsonStr;
            return resultStr.ToString();
        }

  

 4.官方的Json数据源格式

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
[
  {
    "title": "All Day Event",
    "start": "2018-03-01"
  },
  {
    "title": "Long Event",
    "start": "2018-03-07",
    "end": "2018-03-10"
  },
  {
    "id": "999",
    "title": "Repeating Event",
    "start": "2018-03-09T16:00:00-05:00"
  },
  {
    "id": "999",
    "title": "Repeating Event",
    "start": "2018-03-16T16:00:00-05:00"
  },
  {
    "title": "Conference",
    "start": "2018-03-11",
    "end": "2018-03-13"
  },
  {
    "title": "Meeting",
    "start": "2018-03-12T10:30:00-05:00",
    "end": "2018-03-12T12:30:00-05:00"
  },
  {
    "title": "Lunch",
    "start": "2018-03-12T12:00:00-05:00"
  },
  {
    "title": "Meeting",
    "start": "2018-03-12T14:30:00-05:00"
  },
  {
    "title": "Happy Hour",
    "start": "2018-03-12T17:30:00-05:00"
  },
  {
    "title": "Dinner",
    "start": "2018-03-12T20:00:00"
  },
  {
    "title": "Birthday Party",
    "start": "2018-03-13T07:00:00-05:00"
  },
  {
    "title": "Click for Google",
    "url": "http://google.com/",
    "start": "2018-03-28"
  }
]

 

  

  

 

编辑推荐:
· 基于Microsoft.Extensions.AI核心库实现RAG应用
· Linux系列:如何用heaptrack跟踪.NET程序的非托管内存泄露
· 开发者必知的日志记录最佳实践
· SQL Server 2025 AI相关能力初探
· Linux系列:如何用 C#调用 C方法造成内存泄露
阅读排行:
· 终于写完轮子一部分:tcp代理 了,记录一下
· 震惊!C++程序真的从main开始吗?99%的程序员都答错了
· 别再用vector<bool>了!Google高级工程师:这可能是STL最大的设计失误
· 单元测试从入门到精通
· 【硬核科普】Trae如何「偷看」你的代码?零基础破解AI编程运行原理
点击右上角即可分享
微信分享提示