Kendo网格日期列不格式化

jes*_*ges 68 date kendo-ui kendo-grid

我有一个KendoGrid类似下面,当我运行应用程序时,我没有得到date列的预期格式.

$("#empGrid").kendoGrid({
    dataSource: {
        data: empModel.Value,
        pageSize: 10
    },

    columns: [
        {
            field: "Name",
            width: 90,
            title: "Name"
        },

        {
            field: "DOJ",
            width: 90,
            title: "DOJ",
            type: "date",
            format:"{0:MM-dd-yyyy}" 
        }
    ]
});
Run Code Online (Sandbox Code Playgroud)

当我运行它时,我2013-07-02T00:00:00Z在DOJ专栏中得到了" ".为什么不格式化?任何的想法?

aho*_*try 118

我找到了这条信息并使其正常工作.给我的数据是字符串格式,所以我需要kendo.parseDate在格式化之前解析字符串kendo.toString.

columns: [
    {
        field: "FirstName",
        title: "FIRST NAME"
    },
    {
        field: "LastName",
        title: "LAST NAME"
    },
    {
        field: "DateOfBirth",
        title: "DATE OF BIRTH",
        template: "#= kendo.toString(kendo.parseDate(DateOfBirth, 'yyyy-MM-dd'), 'MM/dd/yyyy') #"
    },
...
Run Code Online (Sandbox Code Playgroud)


参考文献:

  1. 格式 - 日 - 中网
  2. 的jsfiddle
  3. kendo ui日期格式


mig*_*lug 40

只需要将列的数据类型放在数据源中

dataSource: {
      data: empModel.Value,
      pageSize: 10,
      schema:  {
                model: {
                    fields: {
                        DOJ: { type: "date" }
                            }
                       }
               }  
           }
Run Code Online (Sandbox Code Playgroud)

然后是你的陈述栏:

 columns: [
    {
        field: "Name",
        width: 90,
        title: "Name"
    },

    {
        field: "DOJ",
        width: 90,
        title: "DOJ",
        type: "date",
        format:"{0:MM-dd-yyyy}" 
    }
]
Run Code Online (Sandbox Code Playgroud)

  • 我做了几乎完全相同的事情使用最新版本,唯一的变化是网址,它显然不起作用.似乎kendo HAS以这种方式获取格式的日期对象以及odata结果并不总是返回一个js日期对象,所以为了使它能够工作,你必须处理解析函数,如下所示:http:// onabai.wordpress.com/2012/09/28/kendoui-tips-and-tricks-on-dates-in-a-grid/ ...似乎问题是.Net似乎在情况下以ISO格式返回数据比如使用带有OData的WebAPI来返回结果. (3认同)
  • 换句话说"这取决于你的OData日期字符串的格式",但这是在这个答案中没有引用的假设. (2认同)
  • 这对我有用,尽管我在字段上有“类型:“日期””并从列属性中删除了此属性。 (2认同)

gur*_*war 10

尝试将kendo网格中的日期格式化为:

columns.Bound(x => x.LastUpdateDate).ClientTemplate("#= kendo.toString(LastUpdateDate, \"MM/dd/yyyy hh:mm tt\") #");
Run Code Online (Sandbox Code Playgroud)

  • 这假设MVC包装器正在服务器上使用...相同的人建议询问的人使用JS客户端脚本来构建网格,所以......没有用. (2认同)

小智 10

这是使用ASP.NET的方法:

add .Format("{0:dd/MM/yyyy HH:mm:ss}"); 

    @(Html.Kendo().Grid<AlphaStatic.Domain.ViewModels.AttributeHistoryViewModel>()
            .Name("grid")
            .Columns(columns =>
            {

                columns.Bound(c => c.AttributeName);
                columns.Bound(c => c.UpdatedDate).Format("{0:dd/MM/yyyy HH:mm:ss}");   
            })
            .HtmlAttributes(new { @class = ".big-grid" })
            .Resizable(x => x.Columns(true))
            .Sortable()
            .Filterable()    
            .DataSource(dataSource => dataSource
                .Ajax()
                .Batch(true)
                .ServerOperation(false)
                        .Model(model =>
                        {
                            model.Id(c => c.Id);
                        })       
               .Read(read => read.Action("Read_AttributeHistory", "Attribute",  new { attributeId = attributeId })))
            )
Run Code Online (Sandbox Code Playgroud)


Pau*_*hra 6

我使用的选项如下:

columns.Bound(p => p.OrderDate).Format("{0:d}").ClientTemplate("#=formatDate(OrderDate)#");

function formatDate(OrderDate) {
    var formatedOrderDate = kendo.format("{0:d}", OrderDate);

    return formatedOrderDate;
}
Run Code Online (Sandbox Code Playgroud)