【发布时间】:2010-12-31 15:47:40
【问题描述】:
我正在尝试在我的网站上制作日历。因此,在我的 C# 代码中,我为该日历制作了所有表格单元格(我将其作为 html 字符串返回到我的视图中)。在这样做的同时,我检查我的数据库以查看是否有任何任务进入该单元格并循环遍历它,直到没有任务剩下。然后我移动到下一个单元格并再次执行相同的操作。
但是,有些任务跨越一天,所以当我生成任务时,我会计算出它跨越了多少天,并通过放置一个可以跨越那么多表格的宽度来制作一个围绕任务的 div细胞。
但是,要显示跨越多天的这个 div,我必须让所有这些 div 都具有 css 绝对值。否则,由于我使用“css 溢出”,任何不适合单元格的内容都会被隐藏,因此如果我在此 div 上有背景颜色,它只会显示该单元格的背景颜色,因为其余部分会被隐藏。所以即使宽度足够长,它总是隐藏在下面。
因此,通过使用“css absolute”,同一单元格中的所有任务都会相互堆积。我发现如果我在每个 div 上放置一个 margin-top,我可以避免这种堆积。但是它不会帮助我解决下一个问题。
假设我有一个从 1 月 1 日到 1 月 2 日跨越 2 天的任务。它的宽度正好跨越 2 个单元格。
由于这个 div 具有绝对设置并且跨越 2 天。
http://img35.imageshack.us/img35/3808/screenshot001mo.jpg
这张图片显示了它跨越 2 天的样子。
现在他们去向 1 月 2 日添加另一个任务。此任务将放置在跨越 1 月 1 日和 1 月 2 日的任务的黄色背景之上,从而不再明显地看出 1 月 1 日的任务跨越到 1 月 2 日。
http://img35.imageshack.us/img35/806/screenshot002ml.jpg
这张图片显示我在 1 月 2 日添加了另一个任务。所以重叠已经发生,很难说第一个任务跨越 2 天。现在想象一下,如果您必须在同样的 2 天内完成跨越 2 天的任务。
所以我需要一些方法来检测这些碰撞或其他东西,以便如果有东西占据了那个空间,它会向下移动它或其他东西。
我希望这是有道理的
你可以看到这个 jquery 插件,我正在模仿我的模型。他们有些如何让任务不相互重叠。
http://arshaw.com/fullcalendar/
我正在使用以下内容:
- asp.net mvc
- C#
- jquery
- html
- CSS
【问题讨论】:
-
正因为如此,制作日历视图很糟糕。可能值得您花时间看看是否能找到适合您的某种插件。
标签: c# jquery asp.net-mvc css