【问题标题】:How to limit datetime UI to select only dates after today or now?如何限制日期时间 UI 仅选择今天或现在之后的日期?
【发布时间】:2019-02-01 04:15:20
【问题描述】:

我知道 datetimepicker 有很多解决方案,但我在 asp.net 中使用文本模式为 Date 的文本框,所以我想确保它只显示今天或之后的日期。我该怎么做?

<div class="col-lg-6 mb-4">
<asp:TextBox ID="endDateTb" CssClass="form-control" placeholder="EndDate" runat="server" TextMode="Date"></asp:TextBox>
</div>

另外,如果文本框日期超过今天的日期(例如,endDate = 2019 年 1 月 2 日,现在是 2019 年 1 月 3 日),我希望数据库自动调用数据库中的删除查询。 知道我该怎么做

【问题讨论】:

  • 请只添加相关标签:)

标签: c# asp.net datetime


【解决方案1】:

您可以在代码隐藏中使用 HTML min 属性设置 Attributes 属性以指定最小日期,因为文本框将呈现为 &lt;input type="date"&gt;

endDateTb.Attributes["min"] = DateTime.Now.ToString("yyyy-MM-dd");

注意min属性必须以yyyy-MM-dd格式指定,否则将被视为没有最小值。

其次,关于日期比较,可以使用简单的if-condition来执行删除查询:

// example to convert text box value to 'DateTime' instance
// if you have specific format, better to use DateTime.ParseExact or DateTime.TryParseExact
DateTime endDate = Convert.ToDateTime(endDateTb.Value); // or endDateTb.Text property

// compare both dates
if (DateTime.Today > endDate)
{
    // execute delete query here
}

参考:

HTML date input (MDN)

【讨论】:

  • 关于删除查询的问题,我能知道它是否从数据库中检查吗?因为我需要在 page_load 上执行此操作,并且如果 enddate 已完成,它将不会显示该列中的任何数据。
  • 第二个问题取决于您要删除的具有特定键的数据类型,但这里没有具体说明,所以我只是给出了检查两个日期的条件。您可以使用 SELECT 查询找出匹配的数据,然后将其删除。
猜你喜欢
  • 2014-09-24
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-11-25
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-04-05
相关资源
最近更新 更多