2013-04-25 52 views
1

我有一個Telerik的MVC的DatePickerTelerik的MVC的DatePicker - 禁用所有將來的日期

<%: Html.Telerik().DatePickerFor(model => model.Date) 
         .TodayButton() 
         .Max(DateTime.Now) 
         .HtmlAttributes(new { @onkeypress = "return allowNumbersWithDot(event);", @onpaste = "return false;" }) 
         %> 

通過設置最大財產,我得到的日期只至當前的日期和所有未來的日期將被隱藏。我是什麼,啓用所有日期直到當前日期並禁用所有未來日期。即用戶可以看到所有日期,但只能選擇直到當前日期。

+0

您可能會考慮使用驗證來達到此目的。 – 2013-04-25 14:28:21

回答

2

Max屬性會阻止設置後的所有日期的選擇和外觀。爲了解決這個問題,嘗試像一個客戶端事件處理格式化你的DatePicker:

@Html.Telerik().DatePickerFor(model => model.Date).ClientEvents(e => e.OnChange("onChange")) 

,然後用像這樣添加您的驗證:

function onChange(e) { 
    var endDate = new Date(); // Your specific date 
    if (e.value > endDate) { 
     if (e.previousValue === null) { 
      $(this).data("tDatePicker").value(null); 
     } 
     e.preventDefault(); 
    } 
} 

關於這項技術的更多信息可以在找到Telerik支持論壇: http://www.telerik.com/community/forums/aspnet-mvc/datepicker/datepicker---prevent-future-date-selection.aspx

+0

非常感謝傑夫。這就是我一直在尋找:) – Nitish 2013-05-08 07:15:35

+0

找到了一個簡單的解決方案。我用我的腳本文件夾中的telerik.calender.js和telerik.datePicker.js替換了telerik.calender.min.js和telerik.datePicker.min.js。然後設置最大日期。它的工作方式與上述完全相同。 – Nitish 2013-05-08 11:00:38

0

最小日期:使用它來設置用戶可以選擇的最小日期。

<%= Html.Telerik().DatePicker() 
        .Name("DatePicker") 
        .MinDate(new DateTime(1900,1,1))) 
%> 

最大日期:用它來設置用戶可以選擇的最大日期。

<%= Html.Telerik().DatePicker() 
        .Name("DatePicker") 
        .MaxDate(new DateTime(2100,1,1))) 
%> 

祝你好運!

相關問題