2016-11-29 14 views
2

剣道UIをはじめて使用していて少し問題がありました。 DateTimeプロパティを持つクラスを作成し、それを剣道グリッドに実装すると、DateTimeのフィールドには常に「このフィールドDateOfLastCheckは日付でなければなりません」と表示されます。あなたはViewModelにを設定し、可能System.DateTimeへのすべての日付フィールドを設定することになるでしょう。このために剣道UI日時

@(Html.Kendo().Grid<Models.OvergasClient>() 
     .Name("grid") 

     .Columns(columns => 
     { 
      columns.Bound(c => c.Name).Width(200); 
      columns.Bound(c => c.Address).Width(200); 
      columns.Bound(c => c.AddressNumber).Width(200); 
      columns.Bound(c => c.Floor).Width(200); 
      columns.Bound(c => c.Appartment).Width(200); 
      columns.Bound(c => c.RegNumber).Width(200); 
      columns.Bound(c => c.Telephone).Width(200); 
      columns.Bound(c => c.isChecked).Width(200); 
      columns.Bound(c => c.DateOfLastCheck).Format("{0:yyyy/mm/dd}").Width(200); 
      columns.Bound(c => c.EquipmentNumber).Width(200); 
      columns.Bound(c => c.Type).Width(200); 
      columns.Bound(c => c.Note).Width(200); 
      columns.Bound(c => c.Status).Width(200); 
      columns.Bound(c => c.Inspector).Width(200); 
      columns.Bound(c => c.Editor).Width(200); 
      columns.Command(command => { command.Edit().UpdateText("Запази").CancelText("Откажи").Text("Редактирай"); command.Destroy().Text("Изтрий"); }).Width(180); 
     }) 
     .ToolBar(toolbar => { 
      toolbar.Create().Text("Създай"); 

     }) 

     .ColumnMenu() 
     .HtmlAttributes(new { style = "height:450px;" }) 
     .Editable(editable => editable.Mode(GridEditMode.PopUp)) 
     .Pageable(p => p.Refresh(true).PageSizes(true).ButtonCount(5)) 

     .Selectable(selectable => 
     { 
      selectable.Mode(GridSelectionMode.Single); 
      selectable.Type(GridSelectionType.Row); 
     }) 

     .Sortable(sortable => 
     { 
      sortable.SortMode(GridSortMode.SingleColumn); 

     }) 
     .Filterable() 
     .Scrollable() 
     .Groupable(m=>m.Messages(c=>c.Empty("Постави името на колоната тук, за да сортираш по тази колона"))) 
     .Events(events => { 
      events.Cancel("onCancel"); 
      events.Change("onChange"); 
      events.ColumnHide("onColumnHide"); 
      events.Edit("onEdit"); 
      events.SaveChanges("onSaveChanges"); 
      events.Save("onSave"); 
      events.Remove("onRemove"); 

      events.DetailExpand("onDetailExpand"); 
      events.DataBinding("onDataBinding"); 
      events.DataBound("onDataBound"); 
      events.ColumnShow("onColumnShow"); 
     }) 
     .DataSource(dataSource => dataSource 
      .Ajax() 
      .Model(model => 
      { 
       model.Id(m => m.Id); 
       model.Field(m => m.DateOfLastCheck).Editable(true); 

      }) 
      .Read(read => read.Action("OvergasClients_Read", "OGTechnika")) 
      .Create(create => create.Action("OvergasClients_Create", "OGTechnika")) 
      .Update(update => update.Action("OvergasClients_Update", "OGTechnika")) 
      .Destroy(destroy => destroy.Action("OvergasClients_Destroy", "OGTechnika")) 
    ) 
) 
+0

は、あなたの 'DateOfLastCheck'属性がヌル可能ですか?あなたは、クイックチェックと同じようにチェックすることができますが、書式設定が機能するかどうかを確認するためにバインドする前に 'string'にキャストすることができますか? *ここでデータ型を変更するよう指定するのではなく、文字列のときに動作するかどうかを確認してそこから移動することを求めるだけです* – Jaya

答えて

0

:これは私の剣道コードです。その後、そのViewModelを使用するためにグリッドのフィールドをバインドします。私はそれと約1時間苦労した。フォーマットは間違っていますが、データが表示されることはありません。私はちょうど私の古いグリッドプロジェクトの1つでそれをテストしました。

1

あなたのコード:

columns.Bound(c => c.DateOfLastCheck).Format("{0:yyyy/mm/dd}").Width(200); 

mmためのものであること。ここでは月にMMが必要です。

私は、2016/59/29のようなものを持っていると思いますが、これは明らかに有効な日付ではありません。

+0

ああ、なぜこのような奇妙な日付があるのだろうと思った...ありがとう! –