在Kendo网格中显示datetime字段的空单元格值?

时间:2013-12-02 13:51:21

标签: asp.net-mvc-3 datetime kendo-grid

我正在使用kendo网格,我在其中添加了一个显示日期时间的DateTime类型列。

我面临的问题是,如果他们没有设置日期,那么默认显示null值。

我想要的是,如果没有设置日期,那么它应该显示空白单元格值而不是空。

我使用的是2012.2.710.340版本的剑道。

以下列方式在类中声明字段值:

public DateTime? Time { get; set; }

以下是我在kendo网格中用于在网格中显示日期时间字段的格式:

columns.Bound(o => o.Time).Format("{0:MM/dd/yyyy HH:mm:ss}").Title("Time");

如果有人能帮我解决问题,我将感激不尽。

3 个答案:

答案 0 :(得分:6)

我尝试过以下方式使用kendo.tostring:

columns.Bound(o => o.Time).ClientTemplate("#= (Time == null) ? ' ' : kendo.toString(Time, 'MM/dd/yyyy HH:mm:ss') #").Title("Time");

通过应用上面的代码,我的问题得到了解决,但由于kendo网格中的这个过滤器停止工作。如果没有设置datetime,我希望过滤器应该工作,尽管网格中的datetime字段有空白值。

答案 1 :(得分:2)

试试这个

columns.Bound(o => string.IsNullOrWhiteSpace(o.Time)?string.Empty:o.Time).Format("{0:MM/dd/yyyy HH:mm:ss}").Title("Time"); 

或使用列模板呈现日期。

<script type="text/x-kendo-template" id="TimeTemplate">
     # var date = time === null ? '': time ;#
    #=date#

</script>

答案 2 :(得分:0)

 columns.Bound(r => r.AssignedDate).ClientTemplate("#= AssignedDateFormat(data) #").Title("Assigned Dt").Width("40px"); 

function AssignedDateFormat(param) {
    var html;
    if (param.AssignedDate == null) {
        html = ""; 
    }
    else {
        html = kendo.toString(param.AssignedDate, 'MM/dd/yyyy');
    }

    return html;
}