2012-05-08 7 views
2

私のコードを失敗したが、この1のようになります。http://demos.telerik.com/aspnet-mvc/grid/editingajaxTimepickerフィールドが日付でなければならない - 検証が

DateTimeの部分図:

@model DateTime? 
@(Html.Telerik().DatePickerFor(m => m)) 

、グリッドにバインド:

columns.Bound(p => p.Timestamp).Width(110); 

私のモデルクラスのフィールドは:

public DateTime Timestamp 
    { 
     get; set; 
    } 

しかし、1日に12より大きな値を入力すると、フィールドが日付でなければならないというエラーが表示されます。これはとても迷惑です!それを解決するには?

答えて

3

私は同様の問題がありました。 多くの頭の掻きと試行錯誤の後、これは私のために働いたものです。

時間部分図

@model DateTime? 

@(Html.Kendo().TimePickerFor(m => m) 
.Min(new DateTime(2010, 1, 1, 10, 0, 0)) //Set min time of the timepicker 
     .Max(new DateTime(2010, 1, 1, 20, 0, 0)) //Set min date of the timepicker 
     .Value(DateTime.Now) //Set the value of the timepicker 
) 

のViewModel

[Required(AllowEmptyStrings = false, ErrorMessage = "Please select a start time")] 
[Display(Name = "Start time")] 
[DataType(DataType.Time)] 
[UIHint("Time")] 
public DateTime StartTime { get; set; } 

ビュー

@Html.EditorFor(model=>model.StartTime) 
@Html.ValidationMessageFor(model=>model.StartTime) 

控えめな検証が今動作しているようですし、エラーメッセージ "開始時刻は日付でなければなりません"現れていないようです。 timepickerボックスを塗りつぶさないと、検証は失敗します。 これが役立つことを願っています。

6

データアノテーションは、使用する正しいデータ型に対してDatePickerを提供できます。クラスプロパティの宣言に次のデータの注釈を追加します。

[DataType(DataType.Time)] 

カミソリビュー:

@model DateTime? 
@(Html.Telerik().DatePickerFor(m => m)) 

バインディング:

columns.Bound(p => p.Timestamp).Width(110); 

クラス:

[DataType(DataType.Time)] 
public DateTime Timestamp 
{ 
    get; set; 
} 
+0

これは私のために働いたが。 – camainc

+0

あなたのソリューションに感謝します。それは魅力のように働く。 –

関連する問題