目录

1.项目设置(00:00:00-00:03:00)

2. ASP.NET MVC视图(00:03:00-00:04:00)

3.茶歇(00:04:00-00:05:00)

4. ASP.NET MVC控制器(00:05:00-00:05:30)

5.加载日历事件(00:05:30-00:08:00)

6.拖放日历事件移动(00:08:00-00:10:00)

CSS主题(1.4版)

透明CSS日历主题

Google类CSS日历主题

绿色CSS日历主题

传统CSS日历主题

事件自定义(1.5版)

相关计划文章和项目


用于ASP.NET MVC 1.3的开源DayPilot Lite引入了AJAX每月事件日历。在本文中,我们将看到如何设置项目,创建新的ASP.NET MVC视图和控制器,如何加载日历,拖放日历事件移动,CSS主题和事件自定义。

  • 下载示例项目 -ASP.NET MVC 4Visual Studio 2010311 kB[codeproject.com]
  • 下载示例项目 -ASP.NET MVC 5Visual Studio 2012268 kB[codeproject.com]
  • 下载适用于ASP.NET MVC 1.5二进制文件的DayPilot Lite +源代码 [daypilot.org]
  • 现场演示 [daypilot.org]

用于ASP.NET MVC 1.3的开源DayPilot Lite引入了AJAX每月事件日历

它补充了现有的每日事件日历:

以及每周事件日历:

也可以看看:

  • 80行代码的ASP.NET MVC的AJAX事件日历(计划程序) [codeproject.com]

还有一个适用于JavaScript/HTML5/jQuery [javascript.daypilot.org] 的独立事件日历/时间表(适用于JavaScript的DayPilot Lite):

有关将DayPilot for JavaScript与ASP.NET MVC和PHP后端一起使用的详细信息,请参阅HTML5事件日历(开放源代码)教程。

1.项目设置(00:00:00-00:03:00)

下载用于ASP.NET MVC开源软件包的DayPilot Lite。下载包很小,因此您不会花太多时间下载它。

将DayPilot JavaScript文件从程序包的Scripts文件夹复制到您的项目(Scripts/DayPilot):

  • daypilot-all.min.js

DayPilot.Web.Mvc.dll从包的Binary文件夹复制到您的项目(Bin)。

添加对DayPilot.Web.Mvc.dll的引用:

2. ASP.NET MVC视图(00:03:00-00:04:00)

创建一个新的MVC视图Views/Home/Index.cshtml):

@{ ViewBag.Title = "AJAX Monthly Event Calendar for ASP.NET MVC"; }
<h2>AJAX Monthly Event Calendar for ASP.NET MVC</h2>

添加DayPilot JavaScript

<script src="@Url.Content("~/Scripts/DayPilot/daypilot-all.min.js")" type="text/javascript"></script>

添加事件日历初始化代码

@Html.DayPilotMonth("dp", new DayPilotMonthConfig
{BackendUrl = Url.Content("~/Home/Backend"),
})

您会看到所需的最少代码很短。它仅需指向后端MVC控制器(“~/Home/Backend”),该控制器将使用AJAX调用提供日历事件数据。

不要忘记DayPilot.Web.Mvc命名空间添加/Views/Web.config中,以便它识别Html.DayPilotMonth帮助程序:

<configuration><system.web.webPages.razor><pages pageBaseType="System.Web.Mvc.WebViewPage"><namespaces>...<add namespace="DayPilot.Web.Mvc"/></namespaces></pages></system.web.webPages.razor>
</configuration>

这是带有事件日历的新MVC视图的完整代码

@{ ViewBag.Title = "AJAX Monthly Event Calendar for ASP.NET MVC"; }<h2>AJAX Monthly Event Calendar for ASP.NET MVC</h2><script src="@Url.Content("~/Scripts/DayPilot/daypilot-all.min.js")" type="text/javascript"></script>@Html.DayPilotMonth("dp", new DayPilotMonthConfig
{BackendUrl = Url.Content("~/Home/Backend"),
})

3.茶歇(00:04:00-00:05:00)

现在您可以煮咖啡了。但不要在一分钟内喝完,它太热了!我们几分钟后再去喝咖啡。

4. ASP.NET MVC控制器(00:05:00-00:05:30)

创建一个新的ASP.NET MVC控制器(Controllers/HomeController.cs):

public class HomeController : Controller
{public ActionResult Index(){return View();}
}

为日历后端添加一个新的动作处理程序。可以通过/Home/Backend访问。

public ActionResult Backend()
{return new Dpm().CallBack(this);
}

5.加载日历事件(00:05:30-00:08:00)

该操作会将控制权传递给派生自DayPilotMonth类的自定义类Dpm的新实例:

class Dpm : DayPilotMonth
{protected override void OnInit(InitArgs e){var db = new DataClasses1DataContext();Events = from ev in db.events select ev;DataIdField = "id";DataTextField = "text";DataStartField = "eventstart";DataEndField = "eventend";Update();}
}

我们已使用Visual Studio 2010向导(DataClasses1.dbml)生成的LINQ to SQL类从名为events的简单MS SQL表中加载了日历事件数据。

“Event”表包含四个字段(id,text,eventstart,eventend):

DayPilotMonth使用Data*Field属性将表字段映射到必填字段:

DataIdField = "id";
DataTextField = "text";
DataStartField = "eventstart";
DataEndField = "eventend";

调用Update()将在客户端刷新日历事件数据。

以下是使用AJAX将日历事件数据提供给客户端MVC控制器完整代码

using System;
using System.Linq;
using System.Web;
using System.Web.Mvc;
using DayPilot.Web.Mvc;
using DayPilot.Web.Mvc.Events.Month;namespace DayPilotMonthLiteMvc4.Controllers
{public class HomeController : Controller{public ActionResult Index(){return View();}public ActionResult Backend(){return new Dpm().CallBack(this);}class Dpm : DayPilotMonth{protected override void OnInit(InitArgs e){var db = new DataClasses1DataContext();Events = from ev in db.events select ev;DataIdField = "id";DataTextField = "text";DataStartField = "eventstart";DataEndField = "eventend";Update();}}}
}

了解有关事件加载的更多信息[doc.daypilot.org]。

6.拖放日历事件移动(00:08:00-00:10:00)

为了启用拖放事件移动,我们需要添加EventMoveHandling到配置中

@Html.DayPilotMonth("dp", new DayPilotMonthConfig
{BackendUrl = Url.Content("~/Home/Backend"),EventMoveHandling = DayPilot.Web.Mvc.Events.Month.EventMoveHandlingType.CallBack,
})

控制器也必须扩展。它将处理EventMove事件并更新数据库:

class Dpm : DayPilotMonth
{// ...protected override void OnEventMove(EventMoveArgs e){var toBeResized = (from ev in db.Events where ev.id == Convert.ToInt32(e.Id) select ev).First();toBeResized.eventstart = e.NewStart;toBeResized.eventend = e.NewEnd;db.SubmitChanges();Update();}// ...
}

了解有关事件移动的更多信息[doc.daypilot.org]。

CSS主题(1.4版)

用于ASP.NET MVC 1.4的DayPilot Lite提供了对CSS主题的支持[doc.daypilot.org]。包括以下主题。

透明CSS日历主题

Google类CSS日历主题

绿色CSS日历主题

传统CSS日历主题

事件自定义(1.5版)

从1.5 SP3版本开始,用于ASP.NET MVC的DayPilot Lite支持事件自定义 [doc.daypilot.org]。您可以使用OnBeforeEventRender事件处理程序在服务器端自定义事件。

例:

protected override void OnBeforeEventRender(BeforeEventRenderArgs e)
{e.BackgroundColor = "#FFE599";e.BorderColor = "#F1C232";e.FontColor = "#000";
}

您还可以根据事件数据对象的自定义字段来更改事件属性:

protected override void OnBeforeEventRender(BeforeEventRenderArgs e)
{e.Html += " owner:" + e.DataItem["owner"];  // accessing the "owner" field // from the data sourcee.BackgroundColor = (string) e.DataItem["color"];
}

可以自定义的属性:

  • Html
  • CssClass
  • BackgroundColor
  • BorderColor
  • FontColot
  • ToolTip

相关计划文章和项目

  • 80行代码的ASP.NET MVC的AJAX事件日历(计划程序) [codeproject.com]
  • jQuery的事件日历(ASP.NET MVC) [kb.daypilot.org]
  • ASP.NET MVC和jQuery的每月活动日历(开源)[code.daypilot.org]
  • HTML5事件日历(开源) [code.daypilot.org]
  • AngularJS事件日历(开源) [code.daypilot.org]
  • 使用EWS(ASP.NET)从Exchange Server(Office 365)加载日历约会 [code.daypilot.org]

DayPilot——10分钟内用于ASP.NET MVC的AJAX每月事件日历相关推荐

  1. 10分钟内基于gpu的目标检测

    10分钟内基于gpu的目标检测 Object Detection on GPUs in 10 Minutes 目标检测仍然是自动驾驶和智能视频分析等应用的主要驱动力.目标检测应用程序需要使用大量数据集 ...

  2. github创建静态页面_如何在10分钟内使用GitHub Pages创建免费的静态站点

    github创建静态页面 Static sites have become all the rage, and with good reason – they are blazingly fast a ...

  3. 以太坊区块链同步_以太坊69:如何在10分钟内建立完全同步的区块链节点

    以太坊区块链同步 by Lukas Lukac 卢卡斯·卢卡奇(Lukas Lukac) Ethereu M 69:如何在10分钟内建立完全同步的区块链节点 (Ethereum 69: how to ...

  4. 10分钟内用Ezo和Python构建以太坊Oracle

    上一篇,我写了用Web3.js构建以太坊Oracle.这个练习给了我一些新的Web3.js 1.0版本知识.许多新的好东西可供选择而且使用它实现一个简单的oracle非常容易.但是,显然必须有更好的方 ...

  5. iis 网站添加 身份验证_在10分钟内将身份验证添加到任何网页

    iis 网站添加 身份验证 This content is sponsored via Syndicate Ads 该内容是通过辛迪加广告 赞助的 Adding authentication to w ...

  6. 如何在10分钟内开始使用MongoDB

    by Navindu Jayatilake 通过纳文杜·贾亚提莱克 如何在10分钟内开始使用MongoDB (How to get started with MongoDB in 10 minutes ...

  7. 如何在10分钟内构建交互式HTML5广告

    本文出生地传送门→→→→→如何在10分钟内构建交互式HTML5广告---静华网-一个有气质的网站 随着Flash的消亡,交互式广告的责任被传递给了HTML5.在这里,我们将学习如何在短短10分钟内建立 ...

  8. es6 ... 添加属性_如何在10分钟内免费将HTTPS添加到您的网站,以及为什么您现在不止需要这样做......

    es6 ... 添加属性 by Ayo Isaiah 通过Ayo Isaiah 如何在10分钟内免费将HTTPS添加到您的网站,以及为什么现在比以往更需要这样做 (How to add HTTPS t ...

  9. javascript创建类_如何在10分钟内使用JavaScript创建费用管理器

    javascript创建类 by Per Harald Borgen 通过Per Harald Borgen 如何在10分钟内使用JavaScript创建费用管理器 (How to create an ...

最新文章

  1. 用ABAP代码读取S/4HANA生产订单工序明细
  2. python 使用 requests 做 http 请求
  3. 分享20个常用的Python函数,轻松玩转Pandas!!
  4. instr 函数从后往前计数 instr(spell,' ',-1)
  5. 第2关:子节点创建、列出、删除
  6. 使用嵌套循环,打印 5 行 5 列的直角三角形
  7. 移动端html头部meta标签的含义
  8. 在tomcat下利用service.xml对项目进行映射部署
  9. 配置jboss,mysql,seam,eclipse步骤(一)
  10. 揭开MySQL数据库的神秘面纱!
  11. 计算机网络安全讲座心得,学习信息安全心得体会
  12. 微信小程序:map组件的简单使用,标注callout与label简单用法
  13. 逻辑函数的公式化减法
  14. Waiting alone
  15. 三万字硬核详解:yolov1、yolov2、yolov3、yolov4、yolov5、yolov7
  16. 『NLP经典项目集』10:使用预训练模型优化快递单信息抽取
  17. 上海东方广播电台 动感101.7(FM101.7)在线收听
  18. Praat脚本-022 | 提取时长和音强
  19. 北京大学计算机就业报告,【计算机考研就业】北京大学2017年毕业生就业质量年度报告...
  20. python基础训练 day8

热门文章

  1. easyui datagrid 获得共多少条记录_聊城市优化简化获得电力流程做法在全省供电系统推广...
  2. python 修改列名_请教一个 Python 技巧(批量对 pandas.DataFrame()统一修改列名)
  3. mysql计算折纸_mysql数据库的创建和授权
  4. 户外lisp导向牌如何安装_深圳医院导向标识牌制作按功能可分为哪些?
  5. 作品上传设计师交流社区,从而获得很好的传播效果
  6. UI设计素材干货|分页符(指示器)各类型特点,可临摹的好模板
  7. 微博html怎么编辑器,类似新浪微博的编辑器 输入@就出现可选的下拉框 是怎么实现的...
  8. CPU的向量化、多核技术、多路技术、众核技术
  9. mmap文件映射与缺页异常 | 图
  10. Linux开机启动过程(5):内核解压