kendo UI网格列Timespan过滤

时间:2016-07-12 10:07:38

标签: kendo-ui grid

我在kendo Grid中有一个列有数据类型TimeSpan(ASP.NET)的列。我有两个问题:

  1. 首先,它没有格式化时间格式为HH:mm
  2. 其次,当我过滤我得到错误 - 从字符串转换到时间跨度失败。
  3. 代码的剥离版本看起来像

    @(Html.Kendo().Grid<SomeModel>()
    .Name("Grid")
    .Columns(colums => 
    {
       columns.Bound(c => c.StartTime).Title("Start Time"); // TimeSpan data type 
    })
    

2 个答案:

答案 0 :(得分:0)

1您应该使用客户端模板来显示时间跨度列:

columns.Bound(p => p.StartTime).ClientTemplate("#= StartTime.Minutes #:#= StartTime.Seconds #:#= StartTime.Milliseconds #");

有关详细信息,请参阅:http://www.telerik.com/forums/working-with-timespans

2如果需要客户端过滤,您应该创建一个自定义函数作为数据源过滤器传递http://www.telerik.com/forums/how-to-define-a-custom-filter-operator 在这里,您还需要一个时间戳或自定义编辑器,以便在用户按下过滤器按钮时显示该按钮http://demos.telerik.com/kendo-ui/grid/filter-menu-customization

答案 1 :(得分:0)

在服务器上创建一个计算属性,如此...

public string ComputedTime {
set{
var time = StartTime.ToShortDateString();

// extra work here
return time;
}
}

然后用剃刀

@(Html.Kendo().Grid<SomeModel>()
.Name("Grid")
.Columns(colums => 
{
   columns.Bound(c => c.ComputedTime).Title("Start Time"); // TimeSpan data type 
})