Asp.net mvc 剑道格网自定义过滤器启用日期
我已经看到了一些代码示例,说明了如何做到这一点,但没有一个是我所寻找的格式。我试图自己改变他们,但没有成功。我试图做的是创建一个自定义行过滤器,它将为您提供x数量的选项,这些选项可以在某个日期使用Asp.net mvc 剑道格网自定义过滤器启用日期,asp.net-mvc,kendo-ui,datepicker,kendo-grid,filtering,Asp.net Mvc,Kendo Ui,Datepicker,Kendo Grid,Filtering,我已经看到了一些代码示例,说明了如何做到这一点,但没有一个是我所寻找的格式。我试图自己改变他们,但没有成功。我试图做的是创建一个自定义行过滤器,它将为您提供x数量的选项,这些选项可以在某个日期使用 columns.Bound(cc => cc.StartDate).Width(160) .HeaderHtmlAttributes(new { title = "startdate") }) .Title("startdate")) .Filterable(ftb =>
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"))));
在上面的代码中,我尝试使用过滤器选项,以便用户可以选择在某个日期之前、当天和之后过滤事件。如果这些选项真的能显示出来就好了,如果用户能使用剑道日期选择器就更好了
所以我的问题是:我没有看到正确的选项,我做错了什么?如何将日期选择器放入过滤器?您需要将列数据类型设置为datetime。 如果您使用的是MVC,在您的模型中,您可以在DatePicker属性上方添加DataType.Date,以防只需要DatePicker而不需要datetimepicker,如下所示:
[DataType(DataType.Date)]
public DateTime StartDate{ get; set; }
注意:如果System.ComponentModel.DataAnnotations未包含在标题中,请添加对其的引用
然后在filtrable中指定UI将是日期时间选择器
filterable: {
ui: "datetimepicker"
}
或
这是一个您可以参考的示例代码。在这个smple中有一列您可以参考的生日
你的情况是
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"))));
希望对你有帮助 StartDate的数据类型是什么?是DateTime吗?很容易转换成DateTime,但目前它是一个字符串,因为这似乎是将值更改为日期而不是datetimeoffset的最简单方法。问题是,这是一个HTML5/javascript类型的代码,而我正在寻找ASP.NET MVC解决方案,如上面的代码所示。绑定到列的属性必须是date-time类型,然后剑道网格将自动填充过滤器部分的datetime选择器。我已经尝试了一段时间来实现这一点,但这需要一段时间。你说的“CreatedDate”是指开始日期吗?我该如何编写模板呢?我是剑道新手,很抱歉问了这么多。@Bloddyeye我已经修改了解决方案请看一看是的,到目前为止我理解了这个过程。问题是此代码将返回未定义的“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"))));