【问题标题】:Lightswitch Time Control灯开关时间控制
【发布时间】:2014-04-10 14:20:46
【问题描述】:

我想在lightswitch 屏幕上表示一个时间字段。他们只提供日期时间选择器和查看器。有人知道解决这个问题的方法吗?

我不想要日期,只想要时间。在我的数据库中,该列定义为time(7)。现在只需要在 Lightswitch 中获取它。请帮忙。

我尝试将我的数据库类型更改为 varchar 并使用常规文本框,但 Lightswitch 不提供我格式化文本框的功能(例如 : AM/PM)。如果我能做到这一点,那将是一个很好的解决方法,但是我不能在 Lightswitch 中做到这一点。

【问题讨论】:

  • 这将是一个很好的解决方法 - 它不会。请停止将日期和/或时间存储为字符串 / varchar - 现在! 使用适当的数据类型 - 这就是它们的用途
  • @marc_s 好吧,如果电灯开关允许我这样做.. 那么我会.. 如果我没有其他选择.. 我将不得不!
  • @MattThalman 要在 LightSwitch 中使用 timepicker 控件需要做很多工作。我可以发誓 LightSwitch 的目标受众是入门级开发/最终用户?

标签: c# visual-studio-2012 visual-studio-lightswitch lightswitch-2012


【解决方案1】:

对于控件,我敢肯定你会被日期时间选择器/查看器困住,除非你创建一个只做时间的自定义控件。在这种情况下,@MichaelWashington 在@MattThalman 提到的答案中链接的文章是要走的路。

但至于显示,Lightswitch 确实允许您根据自己的喜好对其进行格式化。查看这篇 MSDN 文章:How to: Format Numbers and Dates in a LightSwitch Application。基本上你会在数据设计器中打开你的表,然后选择你的日期时间字段。在该字段的属性中,您可以输入格式模式。

来自 MSDN 文章:Reference: Number and Date Formats"t" 的格式模式将导致显示结果为:1:45 PM

@marc_s 是正确的。使用适当的类型。将日期和时间存储为字符串会在以后给您带来很多麻烦。不要这样做。

我不确定在 Lightswitch 中使用日期时间类型的后果,time(7) 是 SQL。我可能只是将您的数据库类型更改为datetimedatetime2。如果您不使用日期部分,那就这样吧。但如果需求发生变化,它将在以后出现。

【讨论】:

    【解决方案2】:

    我遇到了同样的问题并想出了这个解决方案。

    在代表日期字段的日期时间控件上,您可以在渲染后事件上使用 JQuery 来隐藏您不想要的部分。

    myapp.AddEditEvents.FinishTime_postRender = function (element, contentItem) {
    
        // Hide the Date part of the Control by removing the first fieldset tag it comes to,
        $(element).find('fieldset:first').remove();
    
    };
    

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多