2014-04-15 179 views
0

我正在使用舊版代碼,使用telerik UI舊版本(無kendo)的MVC 3,因此需要對dateformats和貨幣進行glabalize,並將currentCulture設置爲希望文化但是當我在Web服務器上進行部署時,我注意到Grids datetime列根據客戶端時區重新計算時間,這是不正確的,因爲在同一個Web服務器上運行該應用程序的多個部署,並且客戶端可能是不同的國家/地區,那我就面臨很大的麻煩。 telerik文檔沒有提到「根據客戶端時區設置自動轉換日期」,這些組件有時不推薦使用。Telerik MVC grid timezone問題

我有這樣的代碼在_Layout.cshtml

Html.Telerik().ScriptRegistrar() 
    .OnDocumentReady(@<text></text>) 
    .Globalization(true)) 

這是我的網格,它有2個datetime列,兩者都重新計算 當電網呈現,我不知道該怎麼避免這種情況,其他方式可能是在模型上使用get屬性來返回日期,如字符串,但該workarround我會花更多的時間,因爲應用程序上有幾個網格。

@(Html.Telerik().Grid<Models.AppointmentModels>(_AppointmentList).Name("Appointment").DataKeys(dataKeys => dataKeys.Add(o => o.AppointmentID)).DataBinding(dataBinding => dataBinding.Ajax() 
.Select("GetCRMAppointments", "Opportunity") 
.Update("UpdateCRMAppointments", "Opportunity") 
.Delete("DeleteCRMAppointments", "Opportunity")) 
.Columns(columns => 
      { 

       columns.Bound(o => o.StartTime).Title("start date").Width(140); 
       columns.Bound(o => o.EndTime).Title("End Date").Width(140); 

      }) 
+0

我的Asp.net網站上也有類似的問題。我結束了使用一個類來轉換每個網站所需的日期時間。 – FeliceM

回答

0

我剛纔也遇到了這個問題。我只對DateTime值的時間部分感興趣。我通過向我的模型添加格式化的字符串值並將其用作View中的ClientTemplate來解決此問題。

型號代碼:

[DisplayName("Start Time")] 
[UIHint("Time")] 
[DataType(DataType.Time)] 
public DateTime StartTime { get; set; } 
//Formatted string below. Your formatting may vary 
public string StartTimeString { get { return StartTime.ToString("t"); } } 

列在查看綁定:

columns.Bound(x => x.StartTime).ClientTemplate("<#= StartTimeString #>").Width(50).ReadOnly();