开发者可以使用FullCalendar创建强大的日历日程应用,FullCalendar提供了丰富的选项设置和方法调用,使得开发者可以轻松的创建各种功能的日历程序。

由于项目需求,需要通过日历的方式展现某些数据,在网上搜索了很多日历的插件,觉得比较好用的还是fullCalendar,下面是我写的一个简单Demo,如有不足,请多多指正!!!

一、引入必要的文件:

二、在界面中添加div块:

初始化calendar的js代码我把它放到了fullcalendar.js文件中接下来就让我们看一下这个文件里的脚本信息。

三、初始化fullcalender:

/* 初始化calendar */ 通过ID来初始化放到哪个标签里

jQuery('#calendar').fullCalendar({

header: {

left: 'month,agendaWeek,agendaDay',

center: 'title',

right: 'today, prev, next'

}, monthNames: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],

monthNamesShort: ["一月", "二月", "三月", "四月", "五月", "六月", "七月", "八月", "九月", "十月", "十一月", "十二月"],

dayNames: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],

dayNamesShort: ["周日", "周一", "周二", "周三", "周四", "周五", "周六"],

today: ["今天"],

firstDay: 1,

buttonText: {

prev: '«',

next: '»',

prevYear: ' << ',

nextYear: ' >> ',

today: '今天',

month: '月',

week: '周',

day: '日'

},

viewDisplay: function (view) {

//动态把数据查出,按照月份动态查询

var viewStart = $.fullCalendar.formatDate(view.start, "yyyy-MM-dd HH:mm:ss");

var viewEnd = $.fullCalendar.formatDate(view.end, "yyyy-MM-dd HH:mm:ss");

$("#calendar").fullCalendar('removeEvents'); 通过post 请求一般处理程序来返回需要展现的信息(start与end为需要传递的参数,在本文中没有用到可以忽略)

$.post("../DateHandle/ViewData.ashx", { start: viewStart, end: viewEnd }, function (data) {

var resultCollection = jQuery.parseJSON(data);

$.each(resultCollection, function (index, term) {

$("#calendar").fullCalendar('renderEvent', term, true);

});

}); //把从后台取出的数据进行封装以后在页面上以fullCalendar的方式进行显示

},

dayClick: function (date, allDay, jsEvent, view) {

},

loading: function (bool) {

if (bool) $('#loading').show();

else $('#loading').hide();

},

//#region 数据绑定上去后添加相应信息在页面上(一开始加载数据时运行)

eventAfterRender: function (event, element, view) {

var fstart = $.fullCalendar.formatDate(event.start, "HH:mm");

var fend = $.fullCalendar.formatDate(event.end, "HH:mm");

var confbg = '';

if (view.name == "month") {//按月份

var evtcontent = '

';

evtcontent = evtcontent + confbg;

//evtcontent = evtcontent + '' + fstart + " - " + fend + event.fullname + '';

evtcontent = evtcontent + '' + event.fullname + '';

element.html(evtcontent);

} else if (view.name == "agendaWeek") {//按周

var evtcontent = '

evtcontent = evtcontent + confbg;

evtcontent = evtcontent + '' + fstart + "-" + fend + '';

evtcontent = evtcontent + '' + event.fullname + '';

element.html(evtcontent);

} else if (view.name == "agendaDay") {//按日

var evtcontent = '

evtcontent = evtcontent + confbg;

evtcontent = evtcontent + '' + fstart + " - " + fend + '';

element.html(evtcontent);

}

},

//#endregion

//#region 鼠标放上去显示信息

eventMouseover: function (calEvent, jsEvent, view) {

//var fstart = $.fullCalendar.formatDate(calEvent.start, "yyyy/MM/dd HH:mm");

//var fend = $.fullCalendar.formatDate(calEvent.end, "yyyy/MM/dd HH:mm");

//$(this).attr('title', fstart + " - " + fend + " " + calEvent.fullname); 鼠标悬浮到title的时候可以设置展现哪些信息

$(this).attr('title', calEvent.fullname);

$(this).css('font-weight', 'normal');

// $(this).tooltip({

// effect: 'toggle',

// cancelDefault: true

// });

},

eventClick: function (event) {

},

events: [],

//#endregion

editable: true,

droppable: true, // this allows things to be dropped onto the calendar !!!

drop: function (date, allDay) { // this function is called when something is dropped

// retrieve the dropped element's stored Event Object

var originalEventObject = jQuery(this).data('eventObject');

// we need to copy it, so that multiple events don't have a reference to the same object

var copiedEventObject = jQuery.extend({}, originalEventObject);

// assign it the date that was reported

copiedEventObject.start = date;

copiedEventObject.allDay = allDay;

// render the event on the calendar

// the last `true` argument determines if the event "sticks" (http://arshaw.com/fullcalendar/docs/event_rendering/renderEvent/)

jQuery('#calendar').fullCalendar('renderEvent', copiedEventObject, true);

// is the "remove after drop" checkbox checked?

jQuery(this).remove();

}

});

四:通过一般处理程序返回需要的json数据

首先新增任务类 Task:

///

/// 任务类

///

public class Task

{

public int ID { get; set; }

///

/// 任务名称

///

public string Name { get; set; }

///

/// 内容

///

public string Content { get; set; }

///

/// 开始时间

///

public DateTime StartDate { get; set; }

///

/// 结束时间

///

public DateTime EndDate { get; set; }

}

一般处理程序ViewData中返回Json数据:

public void ProcessRequest(HttpContext context)

{

//测试数据

List tasks = new List() {

new Task(){ ID=1,Name="任务1",Content="修改某处Bug",StartDate=new DateTime(2015,12,16,08,32,33),EndDate=new DateTime(2015,12,16,11,27,33)},

new Task(){ ID=2,Name="任务2",Content="与刘总开会讨论需求分析",StartDate=new DateTime(2015,12,09,18,32,33),EndDate=new DateTime(2015,12,09,19,27,33)},

new Task(){ ID=3,Name="任务3",Content="代码上传与整理",StartDate=new DateTime(2015,12,17,13,32,33),EndDate=new DateTime(2015,12,17,17,27,33)},

new Task(){ ID=4,Name="任务4",Content="上线测试",StartDate=new DateTime(2015,12,30,15,32,33),EndDate=new DateTime(2015,12,15,17,27,33)},

new Task(){ ID=5,Name="任务5",Content="代码上传与整理",StartDate=new DateTime(2015,12,07,13,32,33),EndDate=new DateTime(2015,12,07,17,27,33)}

};

JavaScriptSerializer jss = new JavaScriptSerializer();

List> gas = new List>();

foreach (var entity in tasks)

{

Dictionary drow = new Dictionary();

drow.Add("id", entity.ID);

drow.Add("title", string.Format("任务名称:{0}", entity.Name));

drow.Add("start", ReturnDate(entity.StartDate));

drow.Add("end", ReturnDate(entity.EndDate)); //鼠标悬浮上展现的是这个属性信息,可以自己设置

drow.Add("fullname", string.Format("任务名称:{0}", entity.Name));

drow.Add("allDay", false);

gas.Add(drow);

}

context.Response.Write(jss.Serialize(gas));

}

#region 时间输出格式

///

/// 时间按照此格式传输

///

///

///

private string ReturnDate(DateTime? date)

{

string str = string.Empty;

string time = Convert.ToString(date);

string[] split = time.Split(' ');

string viewDate = split[0].Split('/')[0] + "-" + AddZero(split[0].Split('/')[1]) + "-" + AddZero(split[0].Split('/')[2]);

string viewTime = AddZero(split[1].Split(':')[0]) + ":" + AddZero(split[1].Split(':')[1]) + ":" + AddZero(split[1].Split(':')[2]);

str = viewDate + "T" + viewTime;

return str;

}

///

/// 判断数字前面是否加0

///

///

///

private string AddZero(string str)

{

if (str.Length == 1)

return "0" + str;

else

return str;

}

#endregion

下面是效果图:

鼠标放到title的效果:

以上内容是小编给大家分享的FullCalendar日历插件应用之数据展现(一)的全部叙述,希望大家喜欢。

fullcalendar显示出勤日_FullCalendar日历插件应用之数据展现(一)相关推荐

  1. fullcalendar显示出勤日_FullCalendar日历插件说明文档

    普通显示设置 属性 描述 默认值 header 设置日历头部信息. 如果设置为false,则不显示头部信息.包括left,center,right左中右三个位置,每个位置都可以对应以下不同的配置: t ...

  2. fullcalendar显示出勤日_FullCalendar日历插件使用说明

    1. 准备工作 js html 2. 说明文档 参考:http://blog.csdn.net/lgg201/article/details/4818941 http://www.cnblogs.co ...

  3. fullcalendar显示出勤日_FullCalendar 日历插件中文说明文档

    普通显示设置 属性 描述 默认值 header 设置日历头部信息. 如果设置为false,则不显示头部信息.包括left,center,right左中右三个位置,每个位置都可以对应以下不同的配置: t ...

  4. fullcalendar显示出勤日_FullCalendar日历插件(中文API)

    FullCalendar提供了丰富的属性设置和方法调用,开发者可以根据FullCalendar提供的API快速完成一个日历日程的开发,本文将FullCalendar的常用属性和方法.回调函数等整理成中 ...

  5. java显示日历 插件_JavaWeb项目FullCalendar日历插件使用的示例代码

    本文介绍了JavaWeb项目FullCalendar日历插件使用的示例代码,分享给大家,具体如下: 使用FullCalendar需要引用的文件 1.css文件 2.js文件 生成日历主界面 FullC ...

  6. FullCalendar 二:FullCalendar日历插件说明文档

    FullCalendar提供了丰富的属性设置和方法调用,开发者可以根据FullCalendar提供的API快速完成一个日历日程的开发,本文将FullCalendar的常用属性和方法.回调函数等整理成中 ...

  7. FullCalendar日历插件说明文档

    好记忆不如按烂笔头... ... 普通显示设置 属性 描述 默认值 header 设置日历头部信息. 如果设置为false,则不显示头部信息.包括left,center,right左中右三个位置,每个 ...

  8. FullCalendar日历插件文档

    普通显示设置 属性 描述 默认值 header 设置日历头部信息. 如果设置为false,则不显示头部信息.包括left,center,right左中右三个位置,每个位置都可以对应以下不同的配置: t ...

  9. Sep 15 FullCalendar日历插件说明文档

    Sep 15 FullCalendar日历插件说明文档 helloweba.com 作者:月光光 时间:2013-09-15 13:53 标签: FullCalendar  日历  文档 FullCa ...

最新文章

  1. django数据模型字段和通用参数说明
  2. php中curl的详解
  3. python爬虫详细步骤-Python爬虫实践入门,超详细
  4. SAP UI5 应用开发教程之四十一 - Chrome 扩展 UI5 Inspector 的离线安装和使用方法试读版
  5. python 输出文件中返回码为200的接口的平均响应时间_Django查看响应时间问题
  6. 定时器的实现原理 不消耗cpu_一直在使用JDK动态代理, 不明白原理如何实现?
  7. DisplayMetircs 类
  8. 随笔记——Apache
  9. 计算机文件及文件夹管理实验报告,计算机实验报告
  10. VMWare ESXi thin磁盘空间回收,精简置备空间回收
  11. 我的全栈之路-Java基础之Java企业级项目开发环境搭建
  12. 4598: [Sdoi2016]模式字符串
  13. ChatGPT账号没封的看过来,与ChatGPT玩个超级创意游戏
  14. python 统计素数并求和
  15. 数据库索引(B树,B+树,哈希)
  16. hadoop权威指南第三版 发布说明
  17. 大数据英语术语(第一弹)
  18. php正则取出后不保留左右,PHP 正则 如何匹配不出现某段字符串的写法!(保留备份)...
  19. C语言开发环境,请查收
  20. Arch-01-02-互联网产品设计常用文档类型 BRD、MRD、PRD、FSD

热门文章

  1. Oracle- (ORA-28001: the password has expired)
  2. 谢尔宾斯基三角形 C++
  3. 到底什么是元宇宙?建立一个虚实融合的数字空间?
  4. 双网卡同网段静态路由_设置双网卡的静态路由
  5. Ubuntu16.04 LTS完整安装教程
  6. response对象
  7. flowable并行审批_Flowable6.4 – 并行网关和包容网关 | 字痕随行
  8. pycharm,scrapy框架,导入自己写的模块时出现“no model named“。
  9. [VS] 线程解冻和冻结
  10. WiFi6E在VRAR中的应用优势