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; }
当我使用内置网格过滤器(下拉列表)并输入我知道存在于数据源中的日期值并且可以在网格中看到时,我得不到任何结果 - 空网格。我看过这些帖子似乎表明这应该像魅力一样,但显然不是我的情况。知道我在这里做错了吗?
答案 0 :(得分:0)
columns.Bound(a => a.ModifiedDate).Format("{0:d}").Width(30);
答案 1 :(得分:0)
我猜你的日期字段“修改日期”是一个DateTime字段。这是因为KendoUI中的datepicker过滤器无法匹配DateTime值的时间部分。由于没有与数据库中的值完全匹配,因此不返回任何内容。
我最近也与此作斗争,我最好的解决方案是在我用SPROC选择字段时将SQL中的DateTime字段转换为日期。你会看起来像这样,假设你正在使用SQL。
SELECT CAST(ModifiedDate AS date) AS ModifiedDate FROM YourTable
这解决了我的过滤器问题,因为它现在返回我想要的行。
这给我带来了另一个问题,因为现在我的日期值都被减去了六个小时,因为我们在Azure上托管我们的网站。为了解决这个问题,我从剑道团队那里得到了正确的答案: