2014-09-29 91 views
0

ASP.NET MVC的Telerik擴展(click)。我們的應用廣泛使用日期,如01/01/0001(DateTime.MinValue)。請不要問「爲什麼不能空?」。 Yeap,你是對的,但是有很多工作要重寫所有的東西,所以我們需要一個臨時的解決方案。在ASP.NET MVC的擴展中顯示0001年的Telerik網格列

目前像約會'01/01/0001' 在下表中,顯示爲'01/01/1' :

columns.Bound(p => p.EffectiveSince).Width(50).Format("{0:MM/dd/yyyy}"); 

如果點擊點擊 '修改' 一些行,只要按「更新'沒有任何修改,那麼這樣的日期('01/01/1')被保存爲01/01/2001,這打破了邏輯。但如果手動鍵入'01/01/0001' - 它按預期保存。所以,telerik「吃」前導零。

你能否建議解決這個「問題」,如何顯示「01/01/0001」而不是「01/01/1」? (是的,我知道可空,另一個解決方案..)

回答

0

找到原因,telerik吃了前導零。只需確認telerik.common.min.js並搜索字符串「yyyy:aO」即可。 aO是getFullYear()返回的年份。這就是爲什麼像'01/01/0001'這樣的所有日期都轉換爲01/01/1,這會導致顯示/發送/保存到db這樣的日期時出現問題。 Telerik的formatString函數以另一種方式顯示年份,格式爲「yyyy」,與C#string.Format格式相同。修復很簡單。只要改變

yyyy: aO //0001年== 1

yyyy: ('0000' + aO).slice(-4) // 0001年爲0001

相關問題