2010-04-19 52 views
6

我被要求开发一个系统,员工可以在一个表格上标记一周中某一天的可用性 - 例如一名员工可以将自己标记为在给定时间内可用给定一周,并在其他时间无法使用。它看起来有点像这样:实施一个多州计划员

http://img697.imageshack.us/img697/842/mvcb.jpg

目前该工程由表内再现复选框,在每个小区捡点击事件,并适当地标记的复选框,并因此细胞。我使用的是从here开始的JQuery“click n drag checkbox”插件。但是,我已经被告知,给定单元格可能有两个以上的状态(例如,在特定情况下可用,不可用,可用),在这种情况下,绑定到复选框检查值不会是很多帮帮我。

我从来没有使用JavaScript或asp.net之前,我不确定最好的方式来解决这个问题。理想情况下,我可以在每个单元格后面粘贴一个数据结构,我可以将其更新到某个状态,然后通过绑定到这个单元格来获取单元格颜色 - 但是,如何最好地实现这一点,我处于一种损失状态。

+1

很高兴看到一个很好的说明问题 – harryovers 2010-04-19 14:48:57

+4

是中间的黄色形状的恐龙? – 2010-04-19 15:14:18

+1

大声笑,右边一个是鸭子 – harryovers 2010-04-19 15:16:01

回答

3

向单元添加点击事件 - 例如,点击单元格。每次点击都可以改变单元的状态。然后可以通过ajax或使用提交按钮(如表单)来存储此状态。每个单元格都可能与隐藏的表单域相关,这是您可以保存状态的地方。

+0

我会允许用户左键单击以改变可用性(是或否)并右键单击上下文菜单设置特定的标准。大多数时候人们只会是/不是。 我也肯定会使用ajax来更新幕后的数据库。大多数日历程序会在进入时立即进行更改,并且您可能在“忘记”按下提交按钮时遇到问题。任何“提交”按钮应该只是意味着“好吧,我完成了,现在带我到别的地方”。 – Sparafusile 2010-04-19 17:44:52

+0

要追求这条路线 - 似乎很明智,但我不确定是否有可能。我已经明确告诉过,不需要用于设置标准的上下文菜单 - 这也是我最初的想法。然而,在幕后更新似乎是必需的。干杯:) – MoominTroll 2010-04-20 09:35:14

1

也许从谷歌日历中获得一些灵感。您可以通过点击并拖动一段时间来在月视图中选择时间范围。我想这是进入更长时间段的更快方式。 (像龙的下部)

+0

,并有一个星期日历插件,做到这一点。我不知道链接,但它非常受欢迎的10个jQuery插件,你必须有类型的博客,所以谷歌是你的朋友。 – robodisco 2010-04-20 00:29:19

+0

点击拖动工程现在就好了 - 它的执行有几个“状态”是问题 - 现在我从复选框绑定到开/关状态 – MoominTroll 2010-04-20 09:33:40

+0

@adam你可能想到FullCalendar,但我我不确定它会在这里工作。 – Ryan 2010-04-21 03:49:21