我已经看到了几个如何执行此操作的代码示例,但没有一个我正在寻找的格式。我试图自己进行转换,但没有成功。我想做的是创建一个自定义行过滤器,该过滤器将为您提供x量的可用于日期的选项。
columns.Bound(cc => cc.StartDate).Width(160)
.HeaderHtmlAttributes(new { title = "startdate") })
.Title("startdate"))
.Filterable(ftb => ftb.Extra(false)
.Operators(op => op.ForDate(d => d
.IsEqualTo("At date")
.IsLessThan("Before date")
.IsGreaterThan("After date"))));
在上面的代码中,我试图使用过滤器选项,以便用户可以选择在特定日期之前,之后和之后过滤事件。如果能真正显示这些选项,则更好,如果用户可以使用剑道日期选择器,那就更好了。
所以我的问题是:我在做错什么,我没有看到正确的选项?如何将日期选择器放入过滤器?
答案 0 :(得分:1)
您需要将列数据类型设置为datetime 。 如果您使用的是MVC,则在模型中,请在DatePicker属性上方添加DataType.Date,以防仅需要datepicker而不需要datetimepicker,如下所示:
[DataType(DataType.Date)]
public DateTime StartDate{ get; set; }
注意:如果未包含在标题中,请添加对System.ComponentModel.DataAnnotations的引用。
然后在filtrable中指定UI将是日期时间选择器
filterable: {
ui: "datetimepicker"
}
OR
columns.Bound(c => c.StartDate).ClientTemplate("#= kendo.toString(kendo.parseDate(StartDate), 'MM/dd/yyyy HH:mm:ss') #")
.Filterable(ftb => ftb.Cell(cell => cell.Template("DateTimeFilter")));
这是您可以参考的示例代码。在此示例中,您可以参考“生日”列。
就您而言,就像
columns.Bound(cc => cc.StartDate).Width(160)
.HeaderHtmlAttributes(new { title = "startdate") })
.Title("startdate"))
.Filterable(ftb => ftb.Extra(false)
.Cell(cell => cell.Template("DateTimeFilter"))
.Operators(op => op.ForDate(d => d
.IsEqualTo("At date")
.IsLessThan("Before date")
.IsGreaterThan("After date"))));
希望它对您有帮助。