我对日历有一些疑问
是否为asp.net mvc或jquery生成了任何好的日历。我想找一些可以制作日历并具有这样功能的东西。
基本上Google日历可以做什么。你可以添加一个任务,然后弹出就像在哪里,时间通知区域。
对于.net MVC或jquery,有没有这样的解决方案?如果没有,那么我愿意在需要时使用其他javascript框架,而不是。
我检查了http://arshaw.com/fullcalendar/,它确实没有我需要的一切。
我喜欢这个http://www.redredred.com.au/projects/jquery-week-calendar/
因为它几乎完全符合我的要求,但主要的缺点是,这只是几个星期而不是整整一个月。
我是否可以使用某种类型的库轻松导入Google日历数据,Outlook日历数据以及基本上任何主要日历程序。
我知道icalendar就像标准格式,所以有一个C#库可以解析这些东西吗?
我需要将日历数据存储在数据库中。数据库表格如何?
答案 0 :(得分:2)
我认为,对于客户方而言,说实话,你要求的东西太多了。你最好的选择是找到你想要开箱即用的那个,但有足够的自定义,以便你填写你正在寻找的功能。要么是这样,要么从头开始编写代码。说实话,你在前端渲染一个带有一些jQuery的表,用于客户端事件。这很乏味,但不应该过于困难。
对于处理日历格式的.NET库,我建议使用DDay's iCal。它有一些问题,需要一些理解才能运行,但它可以工作(我自己用它来为我投影iCalendar条目的网站)。
至于数据库中的日历,这完全取决于您。显然,您需要的最少量信息是日期字段。我建议使用偏移量(SQL Server 2008具有datetimeoffset),因为您可能需要考虑时区。除此之外,您要存储的任何信息都取决于您。
响应chobo2关于如何使数据显示在相应列中的注释,当您呈现表时,您将拥有一个7 x 5表(七天,五行)。我建议用日期标记每一个。
然后,当您渲染表格时,在渲染单元格时,您会查看是否有任何日期事件,如果这样做,则适当地渲染单元格。
答案 1 :(得分:1)
为什么不开始雄心勃勃地开始?谷歌有一个庞大的团队在他们的日程表上工作,并希望你能够复制它,而不需要花费数年的时间就可以完成一个未完成的项目。
您说您不喜欢FullCalendar,但它确实支持日历中所需功能的95%,减去实际点击添加事件的日期。
FullCalendar非常适合显示 事件,但它不是一个完整的 事件内容管理解决方案。 除了将事件拖到一个 不同的时间/日,你无法改变 事件的名称或其他相关联的 数据。您可以添加此项 通过FullCalendar的功能 事件挂钩
您可以使用dayClick
事件添加活动。尽管走这条路线我也不会打扰,只是在页面上有一个单独的面板,上面有一个名称的文本框,一个小图标,可以显示Jquery UI日历。这听起来很低技术,但让点击事件在所有浏览器中运行的痛苦将是一项艰巨的任务。
当您单击解决长文本裁剪问题的日期时,此文本框会显示完整的事件名称。或者this shows you一个很好的静态html iCal解决方案,你可能已经看过了。
生成一年的月历可以使用HTML静态完成,而不是使用jQuery。
如果您坚持使用支持它的Outlook和Google的iCalendar格式,那么为这种格式编写解析器非常容易,因为它是一种简单的文本格式。 This question有关于制作一个的详细信息,您可以使用现有的库。
如下所示的等效SQL类型的简单表就足够了:
Events Id Name Location DateTime Start DateTime End bool IsRecurring
重复事件将是最困难的部分,因为您必须执行计算以计算下一个事件。您不会将每个事件存储在数据库中。使用epoch进行计算可能有所帮助,这是Exchange使用的技术。