我正在使用遗留代码,使用telerik UI旧版本(没有剑道)的MVC 3,因此需要对日期格式和货币进行格式化,并设置当前文化与其工作的愿望文化,但是当我在Web服务器上进行了部署我注意到Grids datetime列如何根据客户端时区重新计算时间,这是不正确的,因为在同一个Web服务器上运行该应用程序的多个部署而客户端可能是不同的国家,那么我就是面临一个大麻烦。 telerik文档没有讨论“根据客户端时区设置自动转换日期”,这些组件有时会被弃用。
我在_Layout.cshtml中有这段代码
Html.Telerik().ScriptRegistrar()
.OnDocumentReady(@<text></text>)
.Globalization(true))
这是我的网格,它有2个日期时间列,都重新计算 当网格呈现时,我不知道如何避免这种情况,其他方式可能是在模型上使用get属性返回日期,如字符串,但是我需要花费更多时间,因为应用程序上有几个网格。 / p>
@(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 :(得分: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();