0

Telerik Mvc 的新手,所以我希望我在这里错过了明显的东西。我正在使用 Telerik Mvc 的 2011.3.1115.340 版本。网格通过对控制器操作的 ajax 调用进行数据绑定,然后将列连接到公共属性。尽可能多的样板。

Html.Telerik().Grid<ProductResult>()
    .Name("Grid")
    .DataBinding(databinding => databinding.Ajax()
        .Select("GetProductInfo", "Product"))
    .DataKeys(keys => keys.Add(a => a.ProductId))
    .Columns(columns => {
        columns.Bound(a => a.CreateDate).Width(30);
        columns.Bound(a => a.Sales).Width(30);
    columns.Bound(a => a.Service).Width(30);
    columns.Bound(a => a.Training).Width(30);
    columns.Bound(a => a.ModifiedDate).Width(30);
    })
    .Pageable(p => p.PageSize(30))
    .Sortable()
    .Filterable()
    .Groupable()

除日期值外,所有过滤都可以正常工作。绑定类最终从 wcf 服务交付,其中日期时间值在数据协定中格式化

[DataMember]
[DisplayName("Last Modified Date")]
[DisplayFormat(DataFormatString = "{0:d}")]
public virtual DateTime ModifiedDate { get; set; }

当我使用内置网格过滤器(下拉菜单)并输入我知道存在于数据源中并且可以在网格中看到的日期值时,我没有得到任何结果 - 一个空网格。我读过的帖子似乎表明这应该像一个魅力,但显然不是我的情况。知道我在这里做错了什么吗?

4

2 回答 2

0
columns.Bound(a => a.ModifiedDate).Format("{0:d}").Width(30);
于 2013-05-11T22:17:27.837 回答
0

我猜你的日期字段“修改日期”是一个日期时间字段。这是因为 KendoUI 中的日期选择器过滤器无法匹配您的 DateTime 值的时间部分。由于没有任何内容与数据库中的值完全匹配,因此它不返回任何内容。

我最近也在与此作斗争,我最好的解决方案是在使用 SPROC 选择字段时将 SQL 中的 DateTime 字段转换为 Date。假设您使用的是 SQL,您的会看起来像这样。

SELECT CAST(ModifiedDate AS date) AS ModifiedDate FROM YourTable

这解决了我的过滤器问题,因为它现在返回了我想要的行。

这暴露了我的另一个问题,因为我们在 Azure 上托管我们的网站,所以现在我的日期值都被抵消了负六个小时。为了解决这个问题,我完全按照剑道团队的做法:

Kendo - 在客户端和服务器端都使用 UTC 时间

于 2014-12-21T17:52:10.710 回答