2017-01-17 9 views
0

バックエンドから「yyyyMMddHHmmss」という形式の文字列を受け取りました。剣道のグリッドに表示されたら、 "MM/dd/yyyy HH:mm:ss"の形式にする必要があります。列( 'yyyyMMddHHmmss')を列を使用してKendogridで日付形式に変換します。

私はMVCモデルで作業しており、バックエンドから取得した日付を変更しようとしましたが、更新を実行すると、更新された行の形式が間違っています。

私が試してみました:日付をフォーマットしない

columns.Bound(p => p.UploadDate).Format("{0:yyyyMMddHHmmss}"); 

を。私はまた、次の

columns.Bound(p => p.UploadDate).ClientTemplate("#=UploadDate ? kendo.toString(kendo.parseDate(UploadDate,yyyyMMddHHmmss), 'MM/dd/yyyy HH:mm:ss')#"); 

columns.Bound(p => p.UploadDate).ClientTemplate("#=kendo.toString(kendo.parseDate(UploadDate), 'MM/dd/yyyy HH:mm:ss')#"); 

の変化にそれらの両方を試してみました

は、ページ上の「無効なテンプレート」エラーを作成します。 UploadDateは、モデル上のDateTimeオブジェクトである場合

答えて

2

.Format()機能のみ動作します:

columns.Bound(p => p.UploadDate).Format("{0:yyyyMMddHHmmss}"); 

あなたはif文インライン速記を使用しているが、「偽の一部が欠落しているので、あなたの最初のClientTemplateの例は失敗します。 "(下記のクライアントテンプレートソリューションを参照してください)。

"yyyyMMddHHmmss"が標準の日付形式ではないため、kendo.dateParse()関数が失敗するため、2番目のClientTemplateの例が失敗すると思います。

ModelでフィールドをDateTimeに変換できない場合は、ClientTemplateを使用する必要があります。これを試してみてください:

columns.Bound(p => p.UploadDate) 
     .ClientTemplate("#= UploadDate 
         ? kendo.toString(kendo.parseDate(UploadDate, 'yyyyMMddHHmmss'), 'MM/dd/yyyy HH:mm:ss') 
         : '' #"); 

参考文献:

+0

あなたは私のヒーローです、ありがとうございました! –

+0

@EricThomas - ようこそ – chambo