我正在使用Kendo网格的html帮助器来显示一些数据。网格使用的模型具有DateTime nullable属性,我希望以myDateTime属性降序显示网格中的项目,首先使用空值。
我设法将它们显示为有序降序,但最后显示空值。任何想法如何首先显示空值,然后显示降序排序值?
@(Html.Kendo().Grid<MyVm>()
.Name("myGrid")
.Columns(columns =>
{
columns.Bound(m => m.myDateProperty);
})
.Sortable()
.DataSource(dataSource => dataSource
.Ajax()
.Sort(s => s.Add("myDateProperty").Descending())
.Model(model => model.Id(a => a.Id))
.ServerOperation(false)
.Read("myMethod", "myController"))
答案 0 :(得分:1)
我认为你不能以任何其他方式解决这个问题:
视图模型:
public class GridViewModel{
public DateTime? myDateProperty { get; set; }
public DateTime myDateProperty_filter { get {return myDateProperty.HasValue ? myDateProperty.Value : DateTime.MaxValue} ; }
}
控制器:
JsonResult myMethod([DataSourceRequest] DataSourceRequest request){
//get your data and convert it to GridViewModel
List<GridViewModel> models = getModel();
return Json(models.ToDataSourceResult(request));
}
查看:
@(Html.Kendo().Grid<GridViewModel>()
.Name("myGrid")
.Columns(columns =>
{
columns.Bound(m => m.myDateProperty_filter).ClientTemplate("#= myDateProperty #");
})
.Sortable()
.DataSource(dataSource => dataSource
.Ajax()
.Sort(s => s.Add("myDateProperty_filter").Descending())
.Model(model => model.Id(a => a.Id))
.ServerOperation(false)
.Read("myMethod", "myController"))