【问题标题】:String ('yyyyMMddHHmmss') to date format with Kendogrid using columns.Bound字符串('yyyyMMddHHmmss')使用Kendogrid使用columns.Bound进行日期格式
【发布时间】:2017-06-02 03:11:31
【问题描述】:

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

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

我试过了:

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

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

这两种方法都会在页面上创建“无效模板”错误。

【问题讨论】:

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


    【解决方案1】:

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

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

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

    我相信您的第二个 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') 
                           : '' #");
    

    参考资料:

    【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2018-12-05
      • 1970-01-01
      • 1970-01-01
      • 2012-10-20
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多