2012-11-28 217 views
0

我根據在Asp.net阻止用戶

從現場兩個日期和一個要野外搜索的數據我想防止用戶輸入起始日期更大比迄今爲止並顯示一條消息給用戶請選擇一個有效的日期範圍

DateTime InvoiceDateFrom = new DateTime(); 
DateTime InvoiceDateTo = new DateTime(); 

if (TxtInvoiceDateFrom.Text.Trim() != "") 
{ 

    //DateTime FromDate = DateTime.ParseExact(TxtInvoiceDateFrom.Text.Trim(), "dd/MM/yyyy", null).AddDays(1); 
    InvoiceDateFrom = Convert.ToDateTime(TxtInvoiceDateFrom.Text); 
    //DateTime toDate = DateTime.ParseExact(TxtInvoiceDateTo.Text.Trim(), "dd/MM/yyyy", null).AddDays(1); 

} 

if (TxtInvoiceDateTo.Text.Trim() != "") 
{ 
    InvoiceDateTo = Convert.ToDateTime(TxtInvoiceDateTo.Text); 
} 

回答

2
if (InvoiceDateTo < InvoiceDateFrom) 
    MessageBox.Show("Please select a valid date range."); 
+0

現在似乎是顯而易見的,但我記得當我第一次學習我想過這個問題,並說:「有這絕對不行,這太酷了!「 – Earlz

+1

它不工作:/我已經試過 – vini

+0

@vini什麼不工作呢? http://msdn.microsoft.com/en-us/library/system.datetime.op_lessthan%28v=vs.71%29.aspx – Earlz

0

請看看這是幫助! C#的做法很好。但我寧願建議JavaScript。

DateTime toDate=DateTime.ParseExact(todateString,"dd/MM/yy",System.Globalization.InvariantCulture); 
DateTime fromDate=DateTime.ParseExact(fromdateString,"dd/MM/yy",System.Globalization.InvariantCulture); 

int comparison=DateTime.Compare(toDate,fromDate); 

if(comparison>=0) 
{ 
    //Post custom error message. 
} 
+0

我們可以使用比較運算符。 'Compare'方法比較'InternalTicks'並返回-1,1或零。比較運算符以相同的方式工作。 – RavingDev

1
DateTime x = DateTime.Parse("12/8/2012"); //as "12/8/2012" is the your specified date 
dateTimePicker1.MaxDate = x; // or you can use it in one line 

如果要防止用戶選擇日期大於今天:

dateTimePicker1.MaxDate = DateTime.Today;