字符串('yyyyMMddHHmmss')与Kendogrid使用columns.Bound的日期格式

时间:2017-01-17 21:46:23

标签: razor model-view-controller kendo-ui telerik

从后端我收到一个格式为“yyyyMMddHHmmss”的字符串。当它显示在剑道网格中时,我需要它的格式为“MM / dd / yyyy HH:mm:ss”。

我正在使用MVC模型并尝试更改日期,因为我们从后端获取它们但是当我们运行更新时,更新的行格式错误。

我试过了:

address.substring(address.indexOf(" BLDG ") + 6, address.length());

没有格式化日期。

我也试过以下

的变体
 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')#");

这两个都在页面上创建了“无效模板”错误。

1 个答案:

答案 0 :(得分:2)

.Format()功能仅在UploadDate是您模型上的DateTime对象时才有效:

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

您的第一个ClientTemplate示例失败,因为您使用的是内联简写if语句,但缺少false部分":" (请参阅下面的客户端模板解决方案。)

我相信您的第二个ClientTemplate示例失败,因为" yyyyMMddHHmmss"不是标准日期格式,因此kendo.dateParse()函数失败。

如果无法将字段转换为模型中的DateTime,则必须使用ClientTemplate。试试这个:

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

参考文献: