2013-01-14 16 views
1

在我的網格劍道UI網格長日期我有以下參數日期列:上更新

update: { 
      url: ROOT+"user/update-user", 
      type: "POST" 
     } 

columns: [ 
    {...}, 
    { 
     field: "DoB", 
     width: 68, 
     title: "DoB", 
     format: "{0:dd/MM/yyyy}", 
     template: '#= kendo.toString(DoB,"dd/MM/yyyy") #' 
    }, 
    {...} 

datasource: { 
    ... 
    schema: { 
     model: { 
      DoB: {type: "date", editable: false, format: "{0:dd/MM/yyyy}"}, 
     } 
    } 
} 

的問題是,是,當我嘗試更新日期列它發送一個很長的日期而不是SQL風格日期「YYYY-MM-DD」:

Wed Jan 09 2003 00:00:00 GMT +0000 etc 

任何想法是什麼造成這種情況?

+0

我可以沒有幫助,但發現有趣的是,有人編輯這個帖子來改變「我嘗試」,「我嘗試」... –

+0

我有些困惑。在你的代碼中,你顯示字段「DoB」的''列定義,而在'model'中你顯示'dateStarted'(順便說一句,這是不可編輯的)。您是否介意澄清哪個字段是問題,幷包含列/模型定義?順便說一句:顯示你的'transport.update'定義可能也很方便。 – OnaBai

+0

@OnaBai對不起,我已更正列名稱並添加了我的更新定義。 – imperium2335

回答

6

原因是因爲當KendoUI即將發送數據到服務器時,它會將您的數據序列化到string並且date類型的默認序列化是長格式。

您可以適應您的數據通過定義transport.update,因爲它發送到服務器:

update: { 
    url : ROOT + "user/update-user", 
    type: "POST", 
    data: function (data) { 
     data.DoB = kendo.toString(data.DoB, "yyyy-MM-dd"); 
     return data; 
    } 
}, 

注意你可能需要一些額外的驗證爲確保DoB實際上是定義

+0

謝謝,這個伎倆! – imperium2335