Ale*_*ndr 3 asp.net-mvc open-source scheduler appointment
.NET MVC Scheduler /约会开源?谢谢!
Kev*_*che 10
我们的团队最近有一个MVC 5项目,满足了这种需求.该项目需要能够显示数据库中的事件日历以及添加和删除现有日历项.我们查看了DayPilot Lite和Dhtmlx的JavaScript 4.1版开源版本.
我们发现了什么
两者都有JavaScript版本和.Net WebForms和/或MVC集成版本但是对于我们的项目,我们希望JavaScript版本超过MVC集成版本,因为我们觉得它更干净,更适合我们的开发模型(我们不倾向于使用第3版)党综合控制).JavaScript是Dhtmlx提供的唯一免费版本,而DayPilot为WebForms和MVC提供了Lite开源版本.
两者都有很好的教程可以在他们的网站和代码项目等各种网站上找到.
我们选择了什么
我们在ASP.Net MVC 5应用程序中使用了dhtmlx的JavaScript事件日历/ Ajax调度程序,因为它有一些我们想要的开源版本的功能.即颜色编码选项已经准备好开箱即用,我们发现API非常灵活,暴露事件和定制选项非常强大.我们对它非常满意,发现很容易使用他们的文档站点和示例站点来弄清楚我们需要做的所有事情.我们没有使用他们的数据连接器,因为我们发现直接的AJAX调用对我们的场景来说足够简单.
dhtmlx入门
这里有几篇关于代码项目的文章,我们曾经用它们来讨论dhtmlx.
http://www.codeproject.com/Articles/148500/Event-Calendar-for-an-ASP-NET-MVC-Application
http://www.codeproject.com/Articles/249921/How-to-Build-a-Room-Booking-Calendar-with-dhtmlxSc
如果链接停止工作,作者就是Stas Wolski.这两个例子都很旧但仍然有效.最后,我们还使用了他们的在线演示(可以下载)和在线文档站点.
知识分享
我们对日历的最大诀窍之一是日期格式匹配(或在我们的初始案例中不匹配).
我们使用的格式scheduler.config.xml_date = "%m/%d/%Y %H:%i".
对于来自我们的MVC视图模型(VM)的日期,我们确保将它们转换为短日期(@Model.StartDate.ToString("d"))的字符串格式(如果它是VM中的日期).
如果VM将日期作为字符串传递,那么我们确保控制器使用以下格式示例(item.StartDate.ToString("MM/dd/yyyy HH:mm:ss")).
我们使用的一些潜在有用的API可能只是有用的.
对日历点击做出反应 - 看一看 scheduler.attachEvent
更改小时比例看 - 看看 scheduler.templates.hour_scale
需要自定义不同事件类型的视图 - 看看scheduler.renderEvent和scheduler.templates.event_class
隐藏/忽略日历中的周末 - 看一看 scheduler.ignore_week
需要为日历操作设置确认对话框 - 请查看 scheduler._dhtmlx_confirm
缩小问题
我们确实找到了一个JS版本和MVC特别是我们没有解决的问题.如果捆绑并缩小dhtmlx的脚本,则调度程序会在调度程序对象重命名时中断并变为未定义.我们只是将脚本设置为捆绑但不是通过使用Bundle而不是缩小ScriptBundle.
bundles.Add(new Bundle("~/bundles/dhtmlx/calendar").Include(
"~/Scripts/dhtmlx/dhtmlxscheduler.js",
"~/Scripts/dhtmlx/ext/dhtmlxscheduler_limit.js",
"~/Scripts/dhtmlx/ext/dhtmlxscheduler_minical.js",
"~/Scripts/dhtmlx/ext/dhtmlxscheduler_readonly.js"));
Run Code Online (Sandbox Code Playgroud)
我确信有一种方法可以解决这个问题,但在我们的案例中我们并不太担心,因为这部分应用程序不会获得大量流量....
| 归档时间: |
|
| 查看次数: |
14495 次 |
| 最近记录: |