簡體   English   中英

如果日期分為多個字段,如何使用比較驗證器作為日期?

[英]How to use Compare Validator for dates if the date is split in several fields?

我正在用C#完成一個表格,我想驗證數據輸入。 我看過許多有關使用“ CompareValidator”進行驗證的帖子。 很好,很清楚。

我只想問一個問題:我在一個字段中輸入了日期,這是使用AjaxControlToolkit Calendar Extender的結果。 您可以將其檢索為:

DateField.Text;

然后,使用NuGet的MKB Time Select軟件包在表單的另一個字段中輸入小時。

TimeSelector1.Hour + ":" + TimeSelector1.Minute

是我要使用的值。

因此,用戶一直在填寫表單,並從日期字段中選擇了一個日期,並從時間選擇器中選擇了一個小時。 我想檢查用戶在這些字段中選擇的日期和時間是否比當前時間至少大24小時,因此這意味着驗證者需要使用這兩個不同的字段來獲取初始數據。

我對如何開始對此感到困惑。

基本上,驗證器應在以下情況下顯示警告:

DateField.Text + " " + TimeSelector1.Hour + ":" + TimeSelector1.Minute

大於

DateTime.Now.AddHours(24)

但是我不清楚如何告訴驗證器驗證這種語句,而不是字段中的簡單內容。

使用提供的信息,您應該能夠將值解析為DateTime對象。

string dateString = String.Format("{0} {1}:{2}:00", DateField.Text, TimeSelector1.Hour, TimeSelector1.Minute);
DateTime selectedDateTime = new DateTime();
if (DateTime.TryParse(dateString, out selectedDateTime))
{
    if (selectedDateTime > DateTime.Now.AddHours(24))
    {
        // code
    }
}

首先,您應該將日期和時間字符串解析為DateTime對象,然后將其與DateTime.Now.AddHours(24)進行比較。

    var inputDate = "20150606 10:12";
    DateTime date;
    if (!DateTime.TryParseExact(inputDate, "yyyyMMdd HH:mm" , CultureInfo.InvariantCulture, DateTimeStyles.None, out date))
    {
        //datetime has invalid format
    }
    else
    {
        if(date > DateTime.Now.AddHours(24))
        {
            //show warning
        }
    } 

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM