【问题标题】:Implementing a multi-state planner实施多态规划器
【发布时间】:2010-04-19 14:43:19
【问题描述】:

我被要求开发一个系统,在该系统中,员工可以在表格上标记他们在一周中的给定日期是否有空 - 例如,员工可以在给定一周的给定时间将自己标记为在给定时间可用,并且在其他时间。它看起来有点像这样:

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

目前,这是通过在表格中呈现复选框,在每个单元格中拾取点击事件并适当地标记复选框并因此标记单元格来实现的。我正在使用来自here 的 JQuery“单击 n 拖动复选框”插件。但是,我被告知对于给定的单元格可能有两个以上的状态(例如,可用、不可用、在给定情况下可用),在这种情况下,绑定到复选框选中的值不会很多帮助。

我以前从未使用过 javascript 或 asp.net,并且不确定解决此问题的最佳方法。理想情况下,我可以在每个单元格后面粘贴一个数据结构,我可以将其更新到某个状态,然后通过绑定到这个单元格颜色 - 但是我不知道如何最好地实现这一点。

【问题讨论】:

  • 很高兴看到一个很好说明的问题
  • 那个中间黄色的形状是恐龙吗?
  • 大声笑,右边的是鸭子
  • 左边那个绝对是二战轰炸机

标签: c# javascript jquery html asp.net-mvc


【解决方案1】:

向单元格添加点击事件 - 例如单击单元格。然后,每次单击都可以更改单元格的状态。然后可以通过 ajax 或使用表单上的提交按钮来存储此状态。每个单元格都可能与一个隐藏的表单字段相关,您可以在其中保存您的状态。

【讨论】:

  • 我将允许用户左键单击以更改可用性(是或否)并右键单击上下文菜单以设置特定条件。大多数时候人们只会是/否。我也肯定会使用 ajax 在幕后更新数据库。大多数日历程序会在输入时立即进行更改,您可能会遇到他们“忘记”点击提交按钮的问题。任何“提交”按钮都应该只是表示“好的,我完成了,现在带我去其他地方”。
  • 走这条路 - 似乎很明智,但我不确定这是否可能。我被明确告知不需要用于设置标准的上下文菜单——这也是我最初的想法。然而,似乎需要在幕后进行更新。干杯:)
【解决方案2】:

也许从谷歌日历中获得一些灵感。在那里,您可以通过单击并拖动一系列日期来选择月视图中的时间跨度。我想这是输入更长时间跨度的更快方法。 (像龙的下半部分)

【讨论】:

  • 并且有一个星期日历插件可以做到这一点。我不知道这个链接,但它在你必须有类型博客的 10 个 jquery 插件上非常受欢迎,所以谷歌是你的朋友。
  • 点击拖动现在工作得很好 - 它的实现有几个“状态”是问题 - 现在我从一个复选框绑定到一个开/关状态
  • @adam 您可能正在考虑 FullCalendar,但我不确定它是否可以在这里工作。
猜你喜欢
  • 2012-01-06
  • 1970-01-01
  • 2023-03-18
  • 2013-11-14
  • 1970-01-01
  • 2013-12-19
  • 2011-01-31
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多