Kendo网格按可为null的属性排序
本文关键字:属性 排序 null 网格 Kendo | 更新日期: 2023-09-27 18:27:58
我正在使用Kendo网格的html助手来显示一些数据。网格使用的模型有一个DateTime可为null的属性,我想显示网格中按myDateTime属性降序排列的项目,首先显示null值。
我已经设法按降序显示了它们,但空值显示在最后。有什么想法吗?我该如何先显示null值,然后显示降序值?
@(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"))
我不认为你可以用其他方法来解决这个问题:
ViewModel:
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"))